[CF552C] Vanya and Scales - 贪心
Description
能否通过 w 的幂次(不重复)的加减得到 m
Solution
考虑 w>2 的情况,当前最低幂次,我们能取的无非是 +1,0,-1,且取完后剩余的一定得被 w 整除,那么我们只要根据这个条件贪心调整就可以了
#include <bits/stdc++.h>
using namespace std;
signed main()
{
int w, m;
cin >> w >> m;
if (w == 2)
cout << "YES" << endl;
else
{
while (m)
{
if ((m + 1) % w == 0)
++m;
if ((m - 1) % w == 0)
--m;
if (m % w == 0)
m /= w;
else
{
cout << "NO" << endl;
return 0;
}
}
cout << "YES" << endl;
}
}