poj1013-Counterfeit Dollar(简单逻辑题)
来源:互联网 发布:幼儿园床淘宝 编辑:程序博客网 时间:2024/04/28 18:25
题意:有12枚硬币,其中有一枚假币,假币可以轻也可能重,试着通过3次称量找出那枚假币并说明它是重的还是轻的
思路:算是水题吧,通过对一些小例子进行简单的逻辑推理,
AB DE up
AC FE up
BE HJ even
可以得到4点结论:(这里可知A是重的假硬币)
1.如果左右两边是even的,说明左右两边的硬币肯定都是真的。所以BEHJ的嫌疑都排除了
2.含有A的那一边总是重
3.B,C和A放在一起时也会显示出“重”,但是A重的次数肯定是最多的,同时A肯定没满足过even的情况。
4.可能有A的一边“重”的情况出现的2次,有“D”的一边轻的情况出现了1次,那么肯定A是假的。因为2>1.
于是就明白如何表示了,用v[ ] 数组表示是否出现过even的情况,用a[ ]数组表示轻重的次数,轻就--,重就++,用绝对值表示次数,肯定是绝对值最大的为假币
#include<iostream>#include<string>#include<cmath> using namespace std;int a[12],v[12];char l[12],r[12],state[5];int main(){int n,t,i,j,m,len;cin>>t;while(t--){memset(a,0,sizeof(a));memset(v,0,sizeof(v));for(i=1;i<=3;i++){scanf("%s%s",l,r);n=strlen(l);scanf("%s",state);if(strcmp(state,"even")==0) //如果相等,说明肯定不是假币,v值赋值为1{for(j=0;j<n;j++){v[l[j]-'A']=1;v[r[j]-'A']=1;}}else if(strcmp(state,"up")==0) //如果左边比右边重,则左边的a值都+1,右边的a值都减1{for(j=0;j<n;j++){a[l[j]-'A']++;a[r[j]-'A']--;}}else for(j=0;j<n;j++) //左边比右边轻,同理{a[l[j]-'A']--;a[r[j]-'A']++;}}int max=0;for(j=0;j<12;j++)if(v[j]!=1&&abs(a[j])>max) //如果没出现过相等的情况而且a值的绝对值最大,认定为假币{max=abs(a[j]);m=j;}if(a[m]<0) printf("%c is the counterfeit coin and it is light.\n",m+'A');else printf("%c is the counterfeit coin and it is heavy.\n",m+'A');}}
0 0
- poj1013-Counterfeit Dollar(简单逻辑题)
- POJ1013 Counterfeit Dollar
- poj1013--Counterfeit Dollar
- poj1013,Counterfeit Dollar
- POJ1013 Counterfeit Dollar
- Counterfeit Dollar(POJ1013
- POJ1013 Counterfeit Dollar(技巧)
- poj1013 Counterfeit Dollar
- POJ1013 Counterfeit Dollar
- poj1013——Counterfeit Dollar
- POJ1013 Counterfeit Dollar 解题报告
- Counterfeit Dollar(poj1013暴力枚举)
- POJ1013——Counterfeit Dollar
- POJ1013-水模拟-Counterfeit Dollar
- poj1013 Counterfeit Dollar 称硬币
- Counterfeit Dollar HDU1482题 FZU1003题 POJ1013题
- 硬币称重问题之POJ1013-Counterfeit Dollar
- Counterfeit Dollar
- POJ 2001-Shortest Prefixes(字典树)
- 关于ORA-00979 不是 GROUP BY 表达式错误的解释
- hdu 4864 Task(贪心)
- Play Framework 各种 render
- ADSL上网TP-LINK路由器设置方法
- poj1013-Counterfeit Dollar(简单逻辑题)
- Python 错误:Error: Inconsistent indentation detected!...
- 2014 Multi-University Training Contest 1 —I Turn the pokers
- 【足迹C++primer】51、面向对象编程概述
- Installation error: INSTALL_FAILED_VERSION_DOWNGRADE
- 经纬财富:嘉峪关早间金银操作建议
- 网站分析在谷歌优化的作用
- 版本管理用百度云,代码小展示就在博客中了
- Cocos2d-x手机游戏开发与项目实践详解_随书代码