1018 锤子剪刀布
来源:互联网 发布:手机测光表软件 编辑:程序博客网 时间:2024/04/30 08:55
题目信息:
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入格式:
输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。
输出格式:
输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。
输入样例:10C JJ BC BB BB CC CC BJ BB CJ J输出样例:
5 3 22 3 5B B代码:
#include <iostream>#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <cctype>using namespace std;int n;char str1[100000],str2[100000];int cmp(int &x,int &y,int &z){ if(x>=y)if(x>=z)return x;else return z;else return y;}void solve(){int m1=0,m2=0,m3=0;int n1=0,n2=0,n3=0;int mm1=0,mm2=0,mm3=0;int nn1=0,nn2=0,nn3=0;for(int i=0;i<n;i++){ if(str1[i]=='B'&&str2[i]=='J') { m3++; nn3++; } if(str1[i]=='B'&&str2[i]=='C') { m1++; mm1++; } if(str1[i]=='B'&&str2[i]=='B') m2++; if(str1[i]=='J'&&str2[i]=='C') { m3++; nn2++; } if(str1[i]=='J'&&str2[i]=='B') { m1++; mm3++; } if(str1[i]=='J'&&str2[i]=='J') m2++; if(str1[i]=='C'&&str2[i]=='B') { m3++; nn1++; } if(str1[i]=='C'&&str2[i]=='J'){m1++;mm2++;} if(str1[i]=='C'&&str2[i]=='C')m2++;}n1=m3;n2=m2;n3=m1;cout<<m1<<" "<<m2<<" "<<m3<<endl;cout<<n1<<" "<<n2<<" "<<n3<<endl;int ma1=0,ma2=0;ma1=cmp(mm1,mm2,mm3);ma2=cmp(nn1,nn2,nn3);if(ma1==mm1)cout<<'B'<<" ";else if(ma1==mm2) cout<<'C'<< " ";else cout<<'J'<<" ";if(ma2==nn1)cout<<'B'<<endl;else if(ma2==nn2)cout<<'C'<<endl;else cout<<'J'<<endl;}int main(){cin >> n;for (int i=0;i<n;i++){cin>>str1[i]>>str2[i];}solve(); return 0;}分析:这题主要是猜拳游戏结果的统计,定义各个变量再循环遍历每次猜拳双方,记录双方赢输平局次数,重点是赢的时候出拳的类型,
统计好了以后,就是输出统计结果,过程中需要判断大小,输出最大值(相同情况下输出字母序号小的)。
0 0
- 1018锤子剪刀布
- 1018 锤子剪刀布
- 1018 锤子剪刀布
- PAT 1018 锤子剪刀布
- PAT-1018 锤子剪刀布
- PAT 1018 锤子剪刀布
- PAT 1018锤子剪刀布
- PAT basic 1018 : 锤子剪刀布
- ZJU PAT 1018 锤子剪刀布
- 1018_锤子剪刀布 (20)
- PAT_乙级 1018 锤子剪刀布
- PAT BASIC 1018 锤子剪刀布
- PAT乙级1018 锤子剪刀布
- AOJ663 锤子剪刀布
- PAT1018 锤子剪刀布
- pat_b_1018 锤子剪刀布
- 1018. 锤子剪刀布
- PAT1018锤子剪刀布
- ImportError: No module named yaml
- android 修改电池电量图标介绍
- 深入浅出RxJava(一:基础篇)
- iOS10推送报错NSCocoaErrorDomain Code=3000
- nohup用法
- 1018 锤子剪刀布
- C++小知识
- ionic开发——图片加载失败或不存在时显示提示图片的解决方法
- listener.log文件过大导致oracle数据库连接非常慢
- FormsAuthentication.SetAuthCookie
- 数位dp,hdu5898
- 2016 ACM/ICPC Asia Regional Qingdao hdu5880 Family View
- 第17 & 18 章 Jenkins –服务器维护 & 持续部署
- 微服务架构的基础框架选择:Spring Cloud还是Dubbo?