PAT乙级1018
题目链接
https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344
题解
刚开始做很懵逼,可能并不难吧,但就是感觉做出来的话代码会很不优雅,所以想了半天。
然后把这个题放了会儿,有了思路。现在第3个测试点没过,我又读了一遍代码,真的不是很懂哪里有错……
// PAT BasicLevel 1018
// https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344
#include <iostream>
using namespace std;
void PK(char ,char);
int aWin[3]={0,0,0};
int bWin[3]={0,0,0};
int equalCount=0;
int main()
{
// 交锋回合数
int n;
cin >>n;
// 获取交锋信息
char a,b;
for(int i=0;i<n;++i){
cin >> a >> b;
PK(a,b);
}
// 输出结果
int aWinMaxCount=0,bWinMaxCount=0;//甲和乙三种出手方式的最大胜利次数
int aWinMaxIndex=0,bWinMaxIndex=0;//甲和乙胜利最多的出手方式下标
int aWinCount=0;
for(int i=0;i<3;i++){
// 更新甲的胜利次数
aWinCount+=aWin[i];
// 更新甲胜利最多的攻击方式
if (aWin[i]>aWinMaxCount){
aWinMaxCount=aWin[i];
aWinMaxIndex=i;
}
// 更新乙胜利最多的攻击方式
if (bWin[i] > bWinMaxCount){
bWinMaxCount = aWin[i];
bWinMaxIndex = i;
}
}
// 输出结果
char choice[]="BCJ";
cout << aWinCount << ' '<< equalCount << ' ' << n - aWinCount - equalCount << endl;
cout << n - aWinCount - equalCount << ' ' << equalCount << ' ' << aWinCount << endl;
cout << choice[aWinMaxIndex] << ' ' << choice[bWinMaxIndex] << endl;
//system("pause");
return 0;
}
void PK(char a, char b)
{
if(a==b){
equalCount++;
}else{
switch (a){
case 'B':
if(b=='C')
aWin[0]++;
else
bWin[2]++;
break;
case 'C':
if (b == 'B')
bWin[0]++;
else
aWin[1]++;
break;
case 'J':
if (b == 'C')
bWin[1]++;
else
aWin[2]++;
break;
}
}
}
作者:@臭咸鱼
转载请注明出处:https://www.cnblogs.com/chouxianyu/
欢迎讨论和交流!
PAT乙级1018的更多相关文章
- PAT乙级 1018. 锤子剪刀布 (20)
1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游 ...
- PAT 乙级 1018 锤子剪刀布 (20) C++版
1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游 ...
- PAT——乙级1018
题目是 1018 锤子剪刀布 (20 point(s)) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出 ...
- C#版 - PAT乙级(Basic Level)真题 之 1021.个位数统计 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - P ...
- PAT乙级真题及训练题 1025. 反转链表 (25)
PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...
- PAT甲级1018. Public Bike Management
PAT甲级1018. Public Bike Management 题意: 杭州市有公共自行车服务,为世界各地的游客提供了极大的便利.人们可以在任何一个车站租一辆自行车,并将其送回城市的任何其他车站. ...
- PAT 乙级 1024
题目 题目地址:PAT 乙级 1024 题解 模拟题,重点需要考虑到各种不同情况:简单来说一下: 因为输入格式固定,所以把不同的部分分别存储和处理可以在很大程度上简化运算:其中需要考虑最多的就是小数部 ...
- PAT 乙级 1017
题目 题目地址:PAT 乙级 1017 题解 粗看是一道大数除法题,实际上只不过是通过字符数组模拟除法过程,理解之后还是比较简单的: 具体分析一下本题: 因为题设中的除数(n)是一位整数,因此大幅简化 ...
- PAT 乙级 1015
题目 题目地址:PAT 乙级 1015 题解 常规题,难点在于理清楚排序规则,通过比较简洁的方式进行编码: 在这里我选择使用vector进行存储,并使用sort方法排序,因为本题不是简单按照大小排序, ...
随机推荐
- 面试总结 | 百度 NLP 实习生
1. 项目简历:主要体现和招聘要求相关的工作,简历要精简,不要给过多冗余信息.对于每个项目,自己做过的工作,里面用到的方法,要很清楚,工作的motivation.意义等也要清楚. 这次面试中我的问题: ...
- JSP基础知识补充
<meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cac ...
- Flink与其他流处理方式的对比分析
一.Flink与其他流处理方式的对比分析 ·1.Flink特点: Apache Flink 是一个开源的分布式,高性能,高可用,准确的流处理框架. 主要由 Java 代码实现. 支持实时流(strea ...
- 2019/5/13 洛谷P4742 【tarjan缩点 + 拓扑dp】
题目链接:https://www.luogu.org/problemnew/show/P4742 题目大意:给一张有向图, 每个点都有点权,第一次经过该点时,该点的点权有贡献,求这张图上一条路径(终点 ...
- memcached命令行、Memcached数据导出和导入
1.memcached命令行 telnet 127.0.0.1 11211set key2 0 30 2abSTOREDget key2VALUE key2 0 2abEND 如: set key3 ...
- Cow and Snacks(吃点心--图论转换) Codeforces Round #584 - Dasha Code Championship - Elimination Round (rated, open for everyone, Div. 1 + Div. 2)
题意:https://codeforc.es/contest/1209/problem/D 有n个点心,有k个人,每个人都有喜欢的两个点心,现在给他们排个队,一个一个吃,每个人只要有自己喜欢的点心就会 ...
- spark内核篇-task数与并行度
每一个 spark job 根据 shuffle 划分 stage,每个 stage 形成一个或者多个 taskSet,了解了每个 stage 需要运行多少个 task,有助于我们优化 spark 运 ...
- Django初步完成:登录、注册、退出
python环境:python2.7 开发工具:pycharm 项目名称:mysite5 app名称:online settings:映射app路径 INSTALLED_APPS = [ 'djang ...
- Flink的时间类型和watermark机制
一FlinkTime类型 有3类时间,分别是数据本身的产生时间.进入Flink系统的时间和被处理的时间,在Flink系统中的数据可以有三种时间属性: Event Time 是每条数据在其生产设备上发生 ...
- O061、Boot from Volume
参考https://www.cnblogs.com/CloudMan6/p/5679384.html Volume 除了可以用作Instance的数据盘,也可以作为启动盘(Bootable Vol ...