现在有好多种砝码,他们的重量是 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

题解:如果让一些砝码表示m的话,只需要将m转化为w进制数,然后要求每一位不是0就是1,然而这里可以利用天平使m加上
一个由0、1组成的w进制数等于另一个由0、1组成的w进制数,也就是说,转换成了m可以表示成两个由0、1组成的w进制数的差.
 #include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cstdlib>
#include <iomanip>
#include <cmath>
#include <ctime>
#include <map>
#include <set>
using namespace std;
#define lowbit(x) (x&(-x))
#define max(x,y) (x>y?x:y)
#define min(x,y) (x<y?x:y)
#define MAX 100000000000000000
#define MOD 1000000007
#define pi acos(-1.0)
#define ei exp(1)
#define PI 3.141592653589793238462
#define INF 0x3f3f3f3f3f
#define mem(a) (memset(a,0,sizeof(a)))
typedef long long ll;
const int N=;
const int mod=1e9+;
int w,m;
int main(){
scanf("%d%d",&w,&m);
while (m){
if (m%w==||m%w==) m=m/w;
else if (m%w==w-) m=m/w+;
else{
printf("NO\n");
return ;
}
}
printf("YES\n");
}
 

最新文章

  1. 在DigitalOcean云主机上搭建SVN服务器
  2. 「个人vim插件+配置」
  3. Python的getattr(),setattr(),delattr(),hasattr()
  4. 实战Django:官方实例Part6
  5. POJ 2446 Chessboard (二分图匹配)
  6. SharePoint 2010 自定义 字段 类型--------省市区联动
  7. ZOJ 2476 Total Amount
  8. SQL查询重复记录
  9. HTML友情链接代码
  10. 基于C#的Appium自动化测试框架(Ⅰ)
  11. 动态创建VIEW
  12. Java基础系列--冒泡排序
  13. 2019南昌网络赛G. tsy&#39;s number
  14. Python-100道练习题答案
  15. hql 语法详解
  16. Python自然语言处理笔记【一】文本分类之监督式分类
  17. mysql 时间类型精确到毫秒、微秒及其处理
  18. Python打包方法——Pyinstaller
  19. Android 自定义AlertDialog(退出提示框)
  20. linux内核分析 第五周 扒开系统调用的三层皮(下)

热门文章

  1. leaflet结合turf.js实现多边形分割(附源码下载)
  2. Java对象拷贝备忘
  3. LINUX下EFIBOOTMGR的使用,删除UEFI主板多余启动项和添加启动项
  4. 小白的linux笔记11:放弃gitbook,转战Sphinx
  5. MRAM技术进入汽车应用
  6. python三程
  7. JavaScript自学笔记(2)---function a(){} 和 var a = function(){}的区别(javascript)
  8. iptables技术入门
  9. spawn id exp6 not open
  10. MySQL 8 模式匹配