1449 砝码称重

题目来源: CodeForces
基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题
 收藏
 关注

现在有好多种砝码,他们的重量是 w0,w1,w2,...  每种各一个。问用这些砝码能不能表示一个重量为m的东西。

样例解释:可以将重物和3放到一个托盘中,9和1放到另外一个托盘中。

Input
单组测试数据。
第一行有两个整数w,m (2 ≤ w ≤ 10^9, 1 ≤ m ≤ 10^9)。
Output
如果能,输出YES,否则输出NO。
Input示例
3 7
Output示例
YES
思路:重低位到高位考虑,最后一位只能为0,1,w-1
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main(){
 5     int n,m;
 6     cin>>n>>m;
 7     int tt=0;
 8     while(m){
 9         int x=m%n;
10         if(x==1||x==0){
11             m=m/n;
12         }
13         else if(x==n-1){
14             m=(m+1)/n;
15         }
16         else {
17             tt=1;break;
18         }
19     }
20     if(tt) cout<<"NO"<<endl;
21     else cout<<"YES"<<endl;
22 }

 

posted on 2017-09-12 16:44  hhhhx  阅读(160)  评论(0编辑  收藏  举报

导航