codeforces 552c[补]
来源:互联网 发布:洗洁精 知乎 编辑:程序博客网 时间:2024/05/21 15:26
BNUZ比赛训练【补】
大概是给砝码的题吓傻过。。看到砝码就不会写了。。一道进制的傻逼题。
题目:
http://codeforces.com/problemset/problem/552/C题目大概意思:
有101个砝码,每种只能用一次,他们的质量是w的i次方(1 <= i <= 100),另外有一个质量为m的物品,需要你判断,用质量为w的101个砝码能不能将天平搞平衡
思路:
将m化为w进制,对于每一位:
如果该位是0,那不需要管他,
如果是1,则需要在另一边放一个砝码,所以处理的时候也不需要管他
如果是w-1,则需要再同边放一个砝码,那么他的下一位数要+1
如果当前位数的数超过了w,则需要进制
其他情况,都不能在用一个砝码的情况下使得天平平衡
代码如下:
/*@resouces: codeforces 552C@date: 2017-3-3@author: QuanQqqqq@algorithm: digit 砝码进制 */#include <bits/stdc++.h>#define maxn 105using namespace std;int bits[maxn];int main(){ int w,m; scanf("%d %d",&w,&m); int len = 0; while(m){ bits[len++] = m % w; m /= w; } bool flag = true; for(int i = 0;i <= len;i++){ if(bits[i] >= w){ bits[i + 1]++; bits[i] -= w; } if(bits[i] <= 1){ continue; } else if(bits[i] + 1 == w) { bits[i + 1]++; } else { flag = false; break; } } flag ? puts("YES") : puts("NO");}
0 0
- codeforces 552c[补]
- codeforces 551c[补]
- codeforces 554c[补]
- codeforces 673c[补]
- codeforces 785c[补]
- codeforces 675c[补]
- codeforces 787c[补]
- Codeforces Round #430 (Div. 2) C+D补题记录
- codeforces contest 868 problem C(补集 状压)
- [codeforces 86C]补全AC自动机上DP
- codeforces 551b[补]
- CodeForces Round402 补题
- codeforces 551d[补]
- codeforces 554d[补]
- codeforces 785d[补]
- codeforces 569d[补]
- codeforces 514d[补]
- Codeforces Round #313 (Div. 2) C. Gerald's Hexagon(补大三角形)
- JSP自定义不带属性和标签体的简单标签
- java中数组复制注意事项
- MySQL统计信息相关参数
- CS231n Assignment1--Q2
- 机器学习中的数学(3)-模型组合(Model Combining)之Boosting与Gradient Boosting
- codeforces 552c[补]
- 递归-列出一个list中的所有的组合
- 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)
- 【转载】Android面试题集
- Java JUC---Volitale关键字
- Java 设计模式
- Openjudge 2469:电池的寿命
- java之字母加密练习
- 机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用