1018 锤子剪刀布 (20 分)(附注释,逻辑分析)
写在前面
- 使用整型变量、字符定义所有值
- 冗余,繁琐,易出错
- 空格属于字符,读取处理比较麻烦
- map 封装,计算最优手势
- 计数甲、乙生产手势
- 题目不难,输入处理耗费部分时间
- 普通水平,10分钟内a掉
测试用例
input:
10
C J
J B
C B
B B
B C
C C
C B
J B
B C
J Joutput:
5 3 2
2 3 5
B B
ac代码
- 个人代码(推荐,处理字符串)
#include <map>
#include <iostream>
using namespace std;int main()
{int n;scanf("%d\n", &n);int js=0, ys=0;string bcj;map<char,int> jm, ym;for(int i=0; i<n; i++){getline(cin, bcj);if(((bcj[0]=='C')&&(bcj[2]=='J'))||((bcj[0]=='J')&&(bcj[2]=='B'))||((bcj[0]=='B')&&(bcj[2]=='C'))){js++;jm[bcj[0]] += 1;}if(((bcj[0]=='J')&&(bcj[2]=='C'))||((bcj[0]=='B')&&(bcj[2]=='J'))||((bcj[0]=='C')&&(bcj[2]=='B'))){ys++;ym[bcj[2]] += 1;}}// printf("%d %d %d\n", jm['B'], jm['C'], jm['J']);
// printf("%d %d %d\n", ym['B'], ym['C'], ym['J']);printf("%d %d %d\n", js, n-ys-js, ys);printf("%d %d %d\n", ys, n-ys-js, js);printf("%c %c", jm['B']>=jm['C'] ? (jm['B']>=jm['J'] ? 'B' : 'J') : (jm['C']>=jm['J'] ? 'C' : 'J'),ym['B']>=ym['C'] ? (ym['B']>=ym['J'] ? 'B' : 'J') : (ym['C']>=ym['J'] ? 'C' : 'J'));return 0;
}
- 参考代码(处理字符)
#include <iostream>
using namespace std;
int main() {int n;cin >> n;int jiawin = 0, yiwin = 0;int jia[3] = {0}, yi[3] = {0};for (int i = 0; i < n; i++) {char s, t;cin >> s >> t;if (s == 'B' && t == 'C') {jiawin++;jia[0]++;} else if (s == 'B' && t == 'J') {yiwin++;yi[2]++;} else if (s == 'C' && t == 'B') {yiwin++;yi[0]++;} else if (s == 'C' && t == 'J') {jiawin++;jia[1]++;} else if (s == 'J' && t == 'B') {jiawin++;jia[2]++;} else if (s == 'J' && t == 'C') {yiwin++;yi[1]++;}}cout << jiawin << " " << n - jiawin - yiwin << " " << yiwin << endl << yiwin << " " << n - jiawin - yiwin << " " << jiawin << endl;int maxjia = jia[0] >= jia[1] ? 0 : 1;maxjia = jia[maxjia] >= jia[2] ? maxjia : 2;int maxyi = yi[0] >= yi[1] ? 0 : 1;maxyi = yi[maxyi] >= yi[2] ? maxyi : 2;char str[4] = {"BCJ"};cout << str[maxjia] << " " << str[maxyi];return 0;
}
1018 锤子剪刀布 (20 分)(附注释,逻辑分析)相关推荐
- C++学习之路 | PTA乙级—— 1018 锤子剪刀布 (20分)(精简)
1018 锤子剪刀布 (20分) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: FigCJB.jpg 现给出两人的交锋记录,请统计双方的胜.平.负次数, ...
- (python 3)1018 锤子剪刀布 (20分)
1018 锤子剪刀布 (20分) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么 ...
- PAT 1018 锤子剪刀布 (20分) C语言实现
1018 锤子剪刀布 (20分) 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第 1 行给出正整数 N(≤10 5 ),即双方交锋 ...
- 1018 锤子剪刀布 (20 分)(算法分析+代码实现)
1018 锤子剪刀布 (20 分) 题目链接 算法分析 对于每组数据,都用对应的变量存储结果 代码实现 #include<bits/stdc++.h> using namespace st ...
- 1018 锤子剪刀布 (20 分)-测试点1,测试点2,测试点4
1018 锤子剪刀布 (20 分) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什 ...
- 1018 锤子剪刀布 (20分) 测试点五问题
我真是踩坑大人,阴沟里踩得最准 代码调试运行各种检查一直正常,测试点五死活过不去 最后看了柳神的代码一部分一部分模仿结果!!发现之前的代码出错的原因居然是 统计所有次数的时候我是用的是+=1,柳神用的 ...
- 1018 锤子剪刀布 (20 分)
大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入 ...
- C语言满分代码:1018 锤子剪刀布 (20分)(解题报告)
立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记 ...
- PAT乙级 1018 锤子剪刀布 (20 分)
大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入 ...
- PAT 1018 锤子剪刀布 (20 分)
大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入 ...
最新文章
- Linux下如何查看文档的内容
- OpenCV 图像加载和显示
- 如何使用:before和:after伪元素?
- 机器人运动学_不同D-H矩阵的对比
- Wince 隐藏TASKBAR的方法
- 【Linux指标】内存篇
- Java - Jackson JSON Java Parser API
- 聊聊Tomcat的架构设计
- JS语法字典---网友总结
- softmax logistic loss详解
- python从爬虫到数据分析项目_零基础学习Python web开发、Python爬虫、Python数据分析,从基础到项目实战!...
- 信息学奥赛一本通 1321:【例6.3】删数问题(Noip1994) | 洛谷 P1106 删数问题
- 3.11 SE11创建搜索帮助
- 3.2.1 封装成帧、帧定界、帧同步、透明传输(字符计数法、字符串的首尾填充法、零比特填充的首尾标志法、违规编码法)(转载)
- 【NOI OpenJudge】【1.3】编程基础之算术表达式与顺序执行
- JAMA:Java矩阵包
- 关于 springboot 的自动配置
- 深入浅出mysql第三版pdf百度云,工作感悟
- HDLBits—Exams/ece241 2014 q7a
- Java 实现数字全排列
热门文章
- 云点播web端上传_Web 播放端 SDK
- oracle dblink调用,oracle dblink 调用序列
- 【汇正财经】大盘反弹
- Unity+ Photon服务器实时对战游戏——Photon服务器介绍(一)
- eMMC(五)——总线数据流
- element-ui单选框无法默认选中
- boolean类型和int类型
- 学习使用 mockjs
- java 接口开发时间_这35个接口,用Java开发,一般要多少天?一天可以完成多少个...
- 解决AX210在ubuntu20.04下找不到WIFI设置的问题