码迷,mamicode.com
首页 > 其他好文 > 详细

1449 砝码称重

时间:2017-09-23 21:29:13      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:时间   ref   scan   return   print   tput   blog   技术分享   否则   

题目来源: 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 进制数,是否可以为 m
加了天平,就是问存不存在一对数相减得 w,那么,从最低位考虑起,是否可以组成即可,贪心
技术分享
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 #define INF 0x3f3f3f3f3f3f3f3f
 5 #define LL long long
 6 #define MX 1005
 7 
 8 LL w,m;
 9 
10 int main()
11 {
12     scanf("%lld%lld",&w,&m);
13     int ok =1, pre=0;
14     while (m)
15     {
16         LL yu = m%w;
17 
18         if (yu - pre == 1)
19             pre = 0;
20         else if (yu - pre == w-1)
21             pre = -1;
22         else if (yu - pre == 0)
23             pre = 0;
24         else
25         {
26             ok=0;
27             break;
28         }
29         m/=w;
30     }
31     if (ok)
32         printf("YES\n");
33     else
34         printf("NO\n");
35 
36     return 0;
37 }
View Code

 




1449 砝码称重

标签:时间   ref   scan   return   print   tput   blog   技术分享   否则   

原文地址:http://www.cnblogs.com/haoabcd2010/p/7582233.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!