Vanya and Scales(思维)
2016-04-21 19:59
471 查看
Vanya and Scales
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Vanya has a scales for weighing loads and weights of masses w0, w1, w2, ..., w100 grams where w is some integer not less than 2 (exactly one weight of each nominal value). Vanya wonders whether he can weight an item with mass m using the given weights, if the weights can be put on both pans of the scales. Formally speaking, your task is to determine whether it is possible to place an item of mass m and some weights on the left pan of the scales, and some weights on the right pan of the scales so that the pans of the scales were in balance.
Input
The first line contains two integers w, m (2 ≤ w ≤ 109, 1 ≤ m ≤ 109) — the number defining the masses of the weights and the mass of the item.
Output
Print word 'YES' if the item can be weighted and 'NO' if it cannot.
Examples
input
output
input
output
input
output
Note
Note to the first sample test. One pan can have an item of mass 7 and a weight of mass 3, and the second pan can have two weights of masses 9 and 1, correspondingly. Then 7 + 3 = 9 + 1.
Note to the second sample test. One pan of the scales can have an item of mass 99 and the weight of mass 1, and the second pan can have the weight of mass 100.
Note to the third sample test. It is impossible to measure the weight of the item in the manner described in the input.
题解:很棒的一个题,初一看完全没思路,到最后也没搞定。。。这个题的意思是给w的(0-100)次方,0-100次方只用一次,使天平平衡,
转化一下就是一个w进制的数能否通过加减w的(0-100)次方,0-100次方只用一次,使之等于0;
代码:
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Vanya has a scales for weighing loads and weights of masses w0, w1, w2, ..., w100 grams where w is some integer not less than 2 (exactly one weight of each nominal value). Vanya wonders whether he can weight an item with mass m using the given weights, if the weights can be put on both pans of the scales. Formally speaking, your task is to determine whether it is possible to place an item of mass m and some weights on the left pan of the scales, and some weights on the right pan of the scales so that the pans of the scales were in balance.
Input
The first line contains two integers w, m (2 ≤ w ≤ 109, 1 ≤ m ≤ 109) — the number defining the masses of the weights and the mass of the item.
Output
Print word 'YES' if the item can be weighted and 'NO' if it cannot.
Examples
input
3 7
output
YES
input
100 99
output
YES
input
100 50
output
NO
Note
Note to the first sample test. One pan can have an item of mass 7 and a weight of mass 3, and the second pan can have two weights of masses 9 and 1, correspondingly. Then 7 + 3 = 9 + 1.
Note to the second sample test. One pan of the scales can have an item of mass 99 and the weight of mass 1, and the second pan can have the weight of mass 100.
Note to the third sample test. It is impossible to measure the weight of the item in the manner described in the input.
题解:很棒的一个题,初一看完全没思路,到最后也没搞定。。。这个题的意思是给w的(0-100)次方,0-100次方只用一次,使天平平衡,
转化一下就是一个w进制的数能否通过加减w的(0-100)次方,0-100次方只用一次,使之等于0;
代码:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<algorithm> using namespace std; int a[110]; int main(){ int w, m; while(~scanf("%d%d", &w, &m)){ int k = 0; while(m){ a[k++] = m % w; m /= w; } int ans = 1; for(int i = 0; i < k; i++){ if(a[i] == w){ a[i] = 0; a[i + 1]++; continue; } if(a[i] <= 1){ continue; } else if(a[i] == w - 1){ a[i + 1]++; a[i] = 0; continue; } else ans = 0; } if(ans) puts("YES"); else puts("NO"); } return 0; }
相关文章推荐
- JAVA开发相关
- 使用javah生成jni 头文件和使用ndk编译so库
- java的GUI基本组件的简单应用
- 第一写blog
- dism 错误 14
- 两个Activity 之间传递参数
- java实现阶乘的计算,抛出异常不会,怎么使用标号跳转,需要帮解决一下
- Linux 常用命令初探
- AIDL API级别详细解释
- 进度条的使用
- 2015级C++第9周项目 动态存储分配及深复制
- 趣味整数-3位反序数-java
- hdoj-2519-新生晚会
- ZOJ 1243 URLs
- 最小路径覆盖和最小边覆盖及相关性质
- bzoj 2310: ParkII
- 【笔记】android 多线程同步实现方法
- 你最喜欢做什么--兴趣问题清单
- Eclipse取得路径的方法
- map的用法