uva 608 - Counterfeit Dollar(枚举)
来源:互联网 发布:最小中文linux操作系统 编辑:程序博客网 时间:2024/05/16 06:54
题目连接:uva 608 - Counterfeit Dollar
题目大意:有A~L这样12个硬币,然后其中有一个硬币是偏重或者偏轻,给出3次测量的情况,要求找出该硬币,并且判断是重了还是轻了。
解题思路:暴力枚举,12个硬币,2*24种情况。
#include <stdio.h>#include <string.h>const int N = 105;int v[N], l[3][N], r[3][N], s[3], cnt[3];void init() {memset(s, 0, sizeof(s));memset(r, 0, sizeof(r));memset(l, 0, sizeof(l));for (int i = 0; i < 12; i++) v[i] = 1;char a[N], b[N], c[N];for (int i = 0; i < 3; i++) {scanf("%s%s%s", a, b, c);cnt[i] = strlen(a);for (int j = 0; j < cnt[i]; j++) l[i][j] = a[j] - 'A';for (int j = 0; j < cnt[i]; j++) r[i][j] = b[j] - 'A';if (c[0] == 'e') s[i] = 0;else if (c[0] == 'u') s[i] = 1;else if (c[0] == 'd') s[i] = -1;}}bool judge() {for (int i = 0; i < 3; i++) {int p = 0, q = 0;for (int j = 0; j < cnt[i]; j++) {p += v[l[i][j]]; q += v[r[i][j]];}if (s[i] == 0 && p != q) return false;if (s[i] > 0 && p <= q) return false;if (s[i] < 0 && p >= q) return false;}int x;for (x = 0; x < 12; x++) if(v[x] != 1) break;printf("%c is the counterfeit coin and it is %s.\n", 'A' + x, v[x] == 0 ? "light" : "heavy");return true;}void solve() {for (int i = 0; i < 12; i++) {v[i] = 2;if (judge()) return;v[i] = 0;if (judge()) return;v[i] = 1;}}int main() {int cas;scanf("%d", &cas);while (cas--) {init();solve();}return 0;}
1 0
- uva 608 - Counterfeit Dollar(枚举)
- UVA 608 - Counterfeit Dollar(直接枚举)
- UVa 608 - Counterfeit Dollar
- POJ 1013 Counterfeit Dollar(枚举)
- Counterfeit Dollar(poj1013暴力枚举)
- POJ 1013 Counterfeit Dollar 简单枚举
- Poj 1013 Counterfeit Dollar【暴力枚举】
- Counterfeit Dollar
- Counterfeit Dollar
- Counterfeit Dollar
- Counterfeit Dollar
- Counterfeit Dollar
- Counterfeit Dollar
- Counterfeit Dollar
- Counterfeit Dollar
- Counterfeit Dollar
- Counterfeit Dollar
- Counterfeit Dollar
- 2.8 python中的if...elif...else语句 [python入门教程]
- Jos - lab4 (Part A) Round-Robin Scheduling
- c语言复习整理1
- Unity 3D插件大全
- 赚钱和爱情
- uva 608 - Counterfeit Dollar(枚举)
- Coursera 《机器学习》(Lecture 07)
- 学一点Git--20分钟git快速上手
- jsp/asp/html/php/js/javascript/python脚本语言/开发 设计 定制 升级
- ApacheBench 测试性能并使用GnuPlot绘制图表
- 如何在VS 2012安装并在工具箱里添加dotnetbar的引用
- Win7无线网卡开软ap的方法 | 建立WIFI热点 [图文教程]
- Copy List with Random Pointer
- 常见的C语言内存错误及对策