暴力/进制转换 Codeforces Round #308 (Div. 2) C. Vanya and Scales

 

题目传送门

 1 /*  2  题意:问是否能用质量为w^0,w^1,...,w^100的砝码各1个称出重量m,砝码放左边或在右边  3  暴力/进制转换:假设可以称出,用w进制表示,每一位是0,1,w-1。w-1表示砝码与物品放在一起,模拟判断每位是否ok  4  详细解释:http://blog.csdn.net/u011265346/article/details/46556361  5  总结:比赛时压根没往进制去想,连样例也不知道是怎么回事。。中文不行啊:(  6 */  7 #include <cstdio>  8 #include <cmath>  9 #include <cstring> 10 #include <algorithm> 11 using namespace std; 12 13 int main(void) //Codeforces Round #308 (Div. 2) C. Vanya and Scales 14 { 15 // freopen ("C.in", "r", stdin); 16 17 int w, n; 18 while (scanf ("%d%d", &w, &n) == 2) 19  { 20 if (n == 3) {puts ("YES"); continue;} 21 22 while (n) 23  { 24 int tmp = n % w; 25 if (tmp <= 1) n /= w; 26 else if (tmp == w - 1) n = n / w + 1; 27 else {puts ("NO"); break;} 28  } 29 30 if (!n) puts ("YES"); 31  } 32 33 return 0; 34 }

 

你可能感兴趣的:(codeforces)