题目链接:​​1449​


砝码的质量分别为w^0,w^1,w^2,w^3------


问题就转换成了m是否可以用w进制来表示(且每位上只能是0,1,-1)


代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define LL long long
int main()
{
LL w,m;
scanf("%lld%lld",&w,&m);
LL s=0,hh=1;
if (w==2)
{
printf("YES\n");
return 0;
}
bool fafe=true;
while (m)
{
if (m%w)
{
if (m%w==1)
{
m--;
}
else if (m%w==w-1)
m++;
else
{
fafe=false;
break;
}
}
m/=w;
}
if (fafe)
printf("YES\n");
else
printf("NO\n");
return 0;
}

题目链接:​​1419​


开始只考虑了n是不是偶数的情况-.-没有考虑n%3的情况---wrong了最后一组---

看了讨论才明白了---给几组数据

( 8 )----(5 7 8)----没想到这种情况---(以前是(5 6 7)---(6 7  8/4))

(12)----(9 10 11)


代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
long long n=0,s3,s1,s2;//
while (~scanf("%lld",&n))
{
if (n==1||n==2)
printf("%lld\n",n);
else
{
if (n%2)
{
s1=n*(n-1)*(n-2);
printf("%lld\n",s1);
}
else if (n%3==0)
{
s1=(n-1)*(n-2)*(n-3);
printf("%lld\n",s1);
}
else
{
s1=n*(n-1)*(n-3);
printf("%lld\n",s1);
}
}
}
return 0;
}