B1018 锤子剪刀布 (20分)

PAT1018 锤子剪刀布 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10^​5​​ ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。 输出格式: 输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空 阅读详情

【题目描述】

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则为常识。

【输入格式】

输入第 1 行给出正整数 N(≤10​5​​),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。

【输出格式】

输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分隔。第 3 行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有 1 个空格。如果解不唯一,则输出按字母序最小的解。

【输入样例】

10
C J
J B
C B
B B
B C
C C
C B
J B
B C
J J

【输出样例】

5 3 2
2 3 5
B B

【思路及特别提示】

tip1:有0-5号监测点,前五个监测点用时均为4ms,5号监测点用时30ms。
tip2:这题没啥技巧,就按照题目意思理解然后写就行。

【代码】

#include<iostream>
using namespace std;
int rsA[3],rsB[3],highA[3],highB[3];
int main(){
    int N,i;
    char jia,yi;
    for(i=0;i<3;i++){
        rsA[i]=rsB[i]=highA[i]=highB[i]=0;
    }
    cin>>N;
    //C 代表“锤子”、J 代表“剪刀”、B 代表“布”
    for(i=0;i<N;i++){
        cin>>jia>>yi;
        //rsAB 0记录胜利 1平局 2失败
        if(jia=='C'){
            if(yi==jia){//平局
                rsA[1]++;
                rsB[1]++;
            }else if(yi=='J'){//甲胜利 乙败
                rsA[0]++;
                rsB[2]++;
                highA[1]++;//0:B 1:C 2:J
            }else{//甲败 乙胜
                rsA[2]++;
                rsB[0]++;
                highB[0]++;//0:B 1:C 2:J
            }
        }else if(jia=='J'){
            if(yi==jia){//平局
                rsA[1]++;
                rsB[1]++;
            }else if(yi=='B'){//甲胜利 乙败
                rsA[0]++;
                rsB[2]++;
                highA[2]++;//0:B 1:C 2:J
            }else{//甲败 乙胜
                rsA[2]++;
                rsB[0]++;
                highB[1]++;//0:B 1:C 2:J
            }
        }else{//jia=B
            if(yi==jia){//平局
                rsA[1]++;
                rsB[1]++;
            }else if(yi=='C'){//甲胜利 乙败
                rsA[0]++;
                rsB[2]++;
                highA[0]++;//0:B 1:C 2:J
            }else{//甲败 乙胜
                rsA[2]++;
                rsB[0]++;
                highB[2]++;//0:B 1:C 2:J
            }
        }
    }
    cout<<rsA[0]<<" "<<rsA[1]<<" "<<rsA[2]<<endl;
    cout<<rsB[0]<<" "<<rsB[1]<<" "<<rsB[2]<<endl;
    int flag=0;
    for(i=1;i<3;i++){
        if(highA[i]>highA[flag]){
            flag=i;
        }
    }
    if(flag==0)
        cout<<"B";
    else if(flag==1)
        cout<<"C";
    else
        cout<<"J";
    cout<<" ";
    flag=0;
    for(i=1;i<3;i++){
        if(highB[i]>highB[flag]){
            flag=i;
        }
    }
    if(flag==0)
        cout<<"B";
    else if(flag==1)
        cout<<"C";
    else
        cout<<"J";
    return 0;
}

稳赢 (15 分)PTA L1-044 稳赢 (15 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。 输入格式: 输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。 输出格式: 对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。 输入样例: 2 ChuiZi JianDao Bu JianDao Bu ChuiZi ChuiZi End 输出样例: Bu ChuiZi Bu ChuiZi JianDao ChuiZi Bu 立即下载

相关推荐

VisualStudio2022配置CGAL

vs2022和vs2017安装配置boost没什么区别,只需要注意boost的msvc得是14.3的,这玩意跟visualstudio版本挂钩的。压缩包解压,得到下面这两文件,然后把auxiliary这个文件挪到CGAL-5.6里面就行了。我用cgal读取一个stl模型,并输出相关信息(想可视化的话需要安装Qt,不想装Qt也可以装VTK)然后下载下面这两个压缩包。照着下面的截图填就完事了。

weixin_43850909的博客 1171

【PAT (Basic Level) Practice (中文)】1018 锤子剪刀布 (20 分)题解

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数N(≤105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。 输出格式: 输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 ...

xu_haiao的博客 733

ISO26262功能安全--产品开发过程

目录 1.总体理解 2.概念阶段——吹牛,我们是打草稿的 2.1 相关项定义 2.2 HARA分析 2.3 功能安全目标 2.4 安全需求与安全概念 3. 系统阶段——闭门造神车,我们开始修炼 3.1 技术安全需求(TSC) 3.2 系统架构设计 3.3 安全分析与独立性分析 3.4 软硬件接口(HSI) 4. 硬件阶段——苦其心志,苦练经骨 4.1 硬件架构...

AgingMoon的博客 1万+

PAT 乙级 1018 锤子剪刀布(C语言)

题目: 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10​5),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 ...

咸鱼七号的博客 661

S32DS使用手把手教程:从零实现CAN通信配置

深入讲解S32DS使用过程中如何从零开始配置CAN通信,涵盖关键步骤与实用技巧,帮助开发者快速上手S32DS使用中的常见问题与调试方法。

weixin_42405592的博客 1127

【QMIX】一种基于Value-Based多智能体算法

文章目录1. QMIX 解决了什么问题(Motivation)2. QMIX 怎样解决团队收益最大化问题(Method)2.1 算法大框架 —— 基于 AC 框架的 CTDE(Centralized Training Distributed Execution) 模式 QMIX 是一种基于 Value-Based 的多智能体强化学习算法(MARL),其基本思想来源于 Actor-Critic 与 DQN 的结合。使用中心式学习(Centralized Learning)分布式执行(Distributed

qq_38638132的博客 9861

PTA练习题第五章7-1稳赢

问题解决: 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。 输入格式: 输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。 输出格式: 对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行

罗铠威的博客 3073

【Unity Shader】Special Effects(十二)Glow 外发光(UI)

Properties_GlowColor ("外发光颜色", Color) = (0, 0, 0, 1)_GlowIntensity("外发光强度", Range(0, 1)) = 1参数详解:_GlowColor:外发光颜色,指定外发光的显示颜色。_GlowIntensity:外发光强度,指定外发光的显示强度,0为不可见,1为最强强度。

神码编程 942

PAT乙级题解——1018 锤子剪刀布 (20分)

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10^5 ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。 输出格式: 输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分

Matrix990的博客 764

ThingsBoard PE专业版解决方案技术文档——温度&湿度

温湿度解决方案

weixin_67440240的博客 820

服务器搭建原神私服教程

项目的稳定版分支提供了编译好的服务端程序,但是博主觉得还是用dev版本的比较好。dev版本需要自己编译的,不要听到编译这两个字就头大,相反,这个服务端的编译相当简单。把文件中的两个IP地址127.0.0.1修改为你服务器的地址,修改完成后按 esc 输入 :wq。Mongodb作为服务端的数据库使用,我们这里安装最新版的Mongodb5。注意:如果想要使用最新版的服务端,必须安装>=17版本的java。tmux可以保证你关掉控制台的时候,程序依然继续运行。至此,服务端所需要的运行环境全部配置完成。

用最简单的方式说最重要的事!服务器、存储、云计 算、A智能的大数据产品、游戏开发技术。致力于广 大开发者、政企用户、各项机构等,构建云上世界提供全方位云计算解决方案。旨在打造差异化的开放式闭环生态系统帮助用户快速构建稳定、安全的云计算环境。 1万+

B1018 锤子剪刀布 20分

B1018 锤子剪刀布 20分 题目描述: 思路①: 模拟,使用大量的if else语句一一判断,考虑到最后需要输出字典序最小的解,不妨先将三种手势按字典序排序。 代码描述: #include<iostream> #include<cstdio> using namespace std; char m[3]={'B','C','J'}; int main() { int n,a1=0,b1=0,c1=0,a2=0,b2=0; int aa[3]={0},bb[3]={0};

qq_45735298的博客 251

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

PAT B1018 锤子剪刀布 (20分)

题目: 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10​5​​),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表...

Fgq080200198的博客 312

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

B1018 锤子剪刀布 (20分)【C语言】

B1018 锤子剪刀布 (20分)【C语言】 原题链接 字符的处理较为复杂,因此我们先用函数将字母转变成数字。 题目描述: 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势。 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10 ​5),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中

SASAKI_130的博客 560

B1018 锤子剪刀布 (20 分)(思路)

思路: 本题题目很简单但是情况比较多,所以最笨也最好想的办法就是将每种情况都列出来,分别进行处理。

shiawaseli的博客 314

PAT B1018 锤子剪刀布 (20 分)

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数N(≤),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第 1 个字母代表甲方,第 2...

weixin_30945039的博客 175

【PAT B1018】锤子剪刀布 (20 分)

题目描述: 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10​5​​),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母...

abcdefggggghk的博客 195

【PAT-B1018】 锤子剪刀布 (20分)(c++)

1018 锤子剪刀布 (20分) #include<iostream> using namespace std; #include<vector> int change(char a) { if (a == 'B') { return 0; } if (a == 'C') { return 1; } if (a == 'J') { return 2; } } char enchange(int a) { if (a == 0) { return 'B'

weixin_44771252的博客 108

模拟题【PAT B1018】锤子剪刀布 (20 分)

1018锤子剪刀布(20分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数N(≤10​5​​),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B...

tqlwsl的博客 573

b1018 锤子剪刀布 (20 分)

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数N(≤10​5​​),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。 输出格式: 输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以...

木木的博客 234

【PAT】B1018 锤子剪刀布 (20 分)_C语言实现

1 题目:1018 锤子剪刀布 (20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图1所示: 图1图1 图1 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式 输入第 1 行给出正整数 N(≤10*​5​​ ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。 输出格式: 输出

kt4ngw的博客 1919
上一篇: B1030 完美数列 (25分)
下一篇: 字符串最小表示(超时及优化)
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值