砝碼稱重 51Nod
阿新 • • 發佈:2018-12-13
看題目的w0 w1 w2 可以想到將m拆分成w進位制
從低位掃向高位 對於每個w進位制位 如果係數為0不用管 為1 正好用一個砝碼滿足 大於1的話 如果是w-1可以用砝碼湊一下送到高位 否則無法滿足 因為低進位制的砝碼對高進位制沒有一點影響
#include <bits/stdc++.h> using namespace std; int main() { int bit[100]; int w,m,len,i; scanf("%d%d",&w,&m); len=0; while(m>0) bit[len++]=m%w,m/=w; for(i=0;i<len;i++) { if(bit[i]>1) { if(bit[i]==w-1) bit[i+1]++; else break; } } if(i==len) printf("YES\n"); else printf("NO\n"); return 0; }