博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模拟,找次品硬币,Counterfeit Dollar(POJ 1013)
阅读量:6258 次
发布时间:2019-06-22

本文共 1821 字,大约阅读时间需要 6 分钟。

题目链接:

解题报告:

1、由于次品的重量不清楚,用time['L'+1]来记录各个字母被怀疑的次数。为负数则轻,为正数则重。

2、用zero['L'+1]记录当天平结果是even时,硬币绝对是真,true;

#include 
#include
using namespace std;int main(){ int t; cin>>t; while(t--) { char left[3][6],right[3][6],result[3][6]; int time['L'+1]= {
0}; ///标记各个字母被怀疑的次数; bool zero['L'+1]= {
false}; ///标记字母绝对是真币; for(int k=0; k<3; k++) cin>>left[k]>>right[k]>>result[k]; for(int i=0; i<3; i++) ///3次判断 { ///检查天平状态 switch(result[i][0]) { case 'e':///天平平衡 { for(int j=0; left[i][j]!='\0'; j++) { zero[left[i][j]]=true; zero[right[i][j]]=true; } break; } case 'u':///天平右边轻些 { for(int j=0; left[i][j]!='\0'; j++) { time[left[i][j]]++; time[right[i][j]]--; } break; } case 'd':///天平右边重些 { for(int j=0; left[i][j]!='\0'; j++) { time[left[i][j]]--; time[right[i][j]]++; } break; } } } int Max=-1;///查找被怀疑程度最高的硬币 char alpha; for(int j='A';j<='L';j++) { if(zero[j]) continue; if(Max<=abs(time[j])) { Max=abs(time[j]); alpha=j; } } cout<
<<" is the counterfeit coin and it is "; if(time[alpha]>0) cout<<"heavy.\n"; else cout<<"light.\n"; } return 0;}

 

转载于:https://www.cnblogs.com/TreeDream/p/5299714.html

你可能感兴趣的文章
Binary Search(Java)(非递归)
查看>>
Access2007数据库下载地址与AccessHelper
查看>>
git 常用命令
查看>>
iphone-common-codes-ccteam源代码 CCNetwork.h
查看>>
winform 写app。config
查看>>
Android中使用ShareSDK实现分享
查看>>
LoadRunner中响应时间与事物时间详解
查看>>
Numba——python面向数组高性能计算库
查看>>
SQL - 内连接与外连接
查看>>
Station娱乐影音系统
查看>>
通过Flask和Redis构造一个动态维护的代理池
查看>>
go学习之旅(ubuntu下安装go)
查看>>
068:【Django数据库】ORM查询条件详解-date、time、year、week_day等
查看>>
0505.Net基础班第十四天(winform基础)
查看>>
JSON与XML比较
查看>>
JavaScript之引用类型介绍
查看>>
QT学习笔记(1)
查看>>
Rest(Restful)风格的Web API跟RPC风格的SOAP WebService--这些名词都啥意思?
查看>>
HDU 3533 Escape (BFS + 预处理)
查看>>
topcoder srm 380 div1
查看>>