POJ 1029 硬币称量类型二 与POJ 1013类比 模拟题
来源:互联网 发布:家庭网络管理手机版 编辑:程序博客网 时间:2024/06/05 18:14
这道题,我自己的代码跟人家的比起来明显啰嗦的多,又懒得再写一遍了,特转载过来提醒自己。
POJ 1029 硬币称量类型二 与POJ 1013类比 模拟题
分类:ACM-模拟题 2010-12-14 21:14 111人阅读 评论(0)收藏 举报
参考了slayer 的解答http://www.slyar.com/blog/poj-1029-cpp.html 与POJ 1013类比
模拟题,抓两点,其一在等式中出现的硬币一定不是假币,其二在不等式中每次都出现即在不等式中出现的次数等于它出现的次数,一定是假币
其他情况无法判断输出0
#include <iostream> #include <string> using namespace std; const int MAX = 1001; int main(){ int i,n,k,p,count,pos,total = 0;//total标记不等式出现的次数,不等式中假币一定都出现 char sign; int t[MAX] = {0};//记录称量的原始数据 int r[MAX] = {0};//标记硬币真假 int w[MAX] = {0};//标记硬币重量 cin>>n>>k; while (k--) { cin>>p; for ( i = 0;i < 2*p;i++) cin>>t[i]; cin>>sign; if (sign == '=')//在等式中出现的一定是真的 { for ( i = 0;i < 2*p;i++) r[t[i]] = 1; } else if (sign == '<') { total++; for (i = 0; i < p; i++) w[t[i]]--; for (i = p;i < 2*p; i++) w[t[i]]++; } else if (sign == '>') { total++; for (i = 0; i < p; i++) w[t[i]]++; for (i = p;i < 2*p; i++) w[t[i]]--; } } count = 0,pos = 0; for (i = 1;i <= n;i++)//注意硬币从1开始标号 { if (r[i]) { continue; } if (w[i] == total || w[i] == -total) { pos = i; count++; } } if (count != 1) { cout<<0<<endl; } else cout<<pos<<endl; return 0; }
- POJ 1029 硬币称量类型二 与POJ 1013类比 模拟题
- POJ 1029 硬币称量类型二 与POJ 1013类比 模拟题
- POJ 1013 模拟题硬币称量
- POJ 1013 (经典++ 的枚举题,称量找出假硬币)
- poj 1013 && poj 1029【寻找硬币】
- POJ 1013 称硬币
- poj 1013 称硬币
- POJ 1013 Counterfeit Dollar 找假硬币 模拟
- poj 1014 硬币分割
- 动态规划 硬币 POJ
- POJ 1013 (简单模拟)
- Poj 模拟题
- POJ 1016 模拟题
- POJ 1250 模拟题
- poj 3087 模拟题
- POJ 1068模拟题
- poj 1013 Counterfeit Dollar(模拟题)
- POJ-1091:[NOIP模拟](二)T2-跳蚤
- GEF实战:图形之IFigure
- 【Java核心技术】CipherInputStream与CipherOutputStream 加密流
- 报到
- POJ1007·DNA Sorting
- 女儿语录(6)
- POJ 1029 硬币称量类型二 与POJ 1013类比 模拟题
- 拷贝文件夹及其所有内容,支持单个文件
- 【Java核心技术】CipherInputStream与CipherOutputStream 加密流2
- 读取文本文件,并为每一行增加行号
- JAVA隐藏鼠标的方法
- 面试题目---C语言可变参数函数的实现
- 使用gimp画线、矩形、圆等
- Ftp文件上传的实现
- 面试题目---小字节序、大字节序、程序判断