题目链接

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的更多相关文章

  1. PAT乙级 1018. 锤子剪刀布 (20)

    1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游 ...

  2. PAT 乙级 1018 锤子剪刀布 (20) C++版

    1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游 ...

  3. PAT——乙级1018

    题目是 1018 锤子剪刀布 (20 point(s)) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出 ...

  4. C#版 - PAT乙级(Basic Level)真题 之 1021.个位数统计 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - P ...

  5. PAT乙级真题及训练题 1025. 反转链表 (25)

    PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...

  6. PAT甲级1018. Public Bike Management

    PAT甲级1018. Public Bike Management 题意: 杭州市有公共自行车服务,为世界各地的游客提供了极大的便利.人们可以在任何一个车站租一辆自行车,并将其送回城市的任何其他车站. ...

  7. PAT 乙级 1024

    题目 题目地址:PAT 乙级 1024 题解 模拟题,重点需要考虑到各种不同情况:简单来说一下: 因为输入格式固定,所以把不同的部分分别存储和处理可以在很大程度上简化运算:其中需要考虑最多的就是小数部 ...

  8. PAT 乙级 1017

    题目 题目地址:PAT 乙级 1017 题解 粗看是一道大数除法题,实际上只不过是通过字符数组模拟除法过程,理解之后还是比较简单的: 具体分析一下本题: 因为题设中的除数(n)是一位整数,因此大幅简化 ...

  9. PAT 乙级 1015

    题目 题目地址:PAT 乙级 1015 题解 常规题,难点在于理清楚排序规则,通过比较简洁的方式进行编码: 在这里我选择使用vector进行存储,并使用sort方法排序,因为本题不是简单按照大小排序, ...

随机推荐

  1. web安全checklist

    web安全漏洞场景分析 输入输出检验不充分 设计缺陷 环境缺陷

  2. JZOJ.1150【贪心算法】IQ

    欢迎转载,请附上原链接https://www.cnblogs.com/Code-Garden/p/11276741.html(也没人会看) 一道对我来说较难的贪心题 题目描述 根据世界某权威学会的一项 ...

  3. 永久修改Putty设置

    在使用远程登录Putty时,会发现修改一些设置并且退出后发现自己之前改的设置不见了,可以通过保存设置解决 假设我要修改远程终端的背景颜色,选择系统颜色 勾选后,如果不保存下次登入时又要进行设置 点击D ...

  4. selenium爬取斗鱼所有直播房间信息

    还是分析一下大体的流程: 首先还是Chrome浏览器抓包分析元素,这是网址:https://www.douyu.com/directory/all 发现所有房间的信息都是保存在一个无序列表中的li中, ...

  5. css多种方式实现等宽布局

    本文讲的等宽布局是在不手动设置元素宽度的情况下,使用纯css实现各个元素宽度都相当的效果. 1.使用table-cell实现(兼容ie8) <style> body,div{ margin ...

  6. Linux Too many open files

    Linux Too many open files 查看系统资源限制信息: sudo -s -u root -H id sudo -s lsof | awk '{ print $2 " &q ...

  7. centos7配置rsync+inotify数据实时共享

    关于centos7版本上面搭建rsync服务并且实现实时同步之前一直是在6版本上面搭建rsync服务,在7版本上面折腾了半天.此处总结下inotify下载地址:http://github.com/do ...

  8. JS-数值转换

    JS数值转换 JS数值转换的方式有4种:Number(),parseInt(),parseFloat(),数据类型*1或者/1. 他们的区别在于: 1.Number():可以将非数值转为数值 如果是B ...

  9. YII2中controller中的behaviors中的behavior内部是如何被使用的?

    1. behaviors方法的调用: 在祖先对象components中有一个ensureBehaviors方法,代码如下: /** * Makes sure that the behaviors de ...

  10. [Scrapy-6] XPath使用的一个坑

    先上代码: import scrapy from scrapy.selector import Selector class QuoteSpider(scrapy.Spider): name = &q ...