【PAT乙级】题解-1018 锤子剪刀布

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

PAT :计算机程序设计能力考试:一个高校编程学习赛,内容基础,据说题目描述含糊不清,造成诸多理解错误。

第一观感是:输入输出样例极少,未给学生充分理解题目,提供更多辅助。

PAT 乙级:只涉及基础编程,最难到排序算法。适合基础语法学习阶段的同学。

问题描述

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
在这里插入图片描述
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

输入格式

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

输出格式

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

输入输出样例

输入样例1

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

输出样例1

5 3 2
2 3 5
B B

样例解释:无。

题解 1

思路分析:真正的模拟,不做任何解释 … 🤦‍

#include <iostream>
using namespace std;

int main() {

    int n;
    cin >> n;
    
    // 胜平负记录一个甲的,乙的直接逆序输出即可
    int s = 0, p = 0, f = 0;
    int ac = 0, aj = 0, ab = 0;
    int bc = 0, bj = 0, bb = 0;
    while(n --) {
        char a, b;
        cin >> a >> b;

		if(a == b) {
			p ++;
		} else if(a == 'C' && b == 'J') {
			s ++;
			ac ++;
		} else if(a == 'J' && b == 'B') {
			s ++;
			aj ++;
		} else if(a == 'B' && b == 'C') {
			s ++;
			ab ++;
		} else if(b == 'C' && a == 'J') {
			f ++;
			bc ++;
		} else if(b == 'J' && a == 'B') {
			f ++;
			bj ++;
		} else if(b == 'B' && a == 'C') {
			f ++;
			bb ++;
		}
    }

    cout << s << " " << p << " " << f << endl;
    cout << f << " " << p << " " << s << endl;

    // ab  ac  aj
    if(ab >= aj && ab >= ac) cout << "B ";
    else if(ac >= aj && ac > ab) cout << "C ";
    else if(aj > ab && aj > ac) cout << "J ";
    
    // bb  bc  bj
    if(bb >= bj && bb >= bc) cout << "B" << endl;
    else if(bc >= bj && bc > bb) cout << "C" << endl;
    else if(bj > bb && bj > bc) cout << "J" << endl;

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

相关推荐

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

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

谭波波波啵的博客 676

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

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

Matrix990的博客 764

「PAT乙级真题解析」Basic Level 1018 锤子剪刀布 (问题分析+完整步骤+伪代码描述+提交通过代码)

题目要求统计甲乙两人玩剪刀石头布游戏的游戏结果, 并输出要求的统计项. 由于"统计", "剪刀石头布"这些都是我们十分熟悉的用语, 不需要理厘清概念之类的. 只需要考虑清楚统计过程中涉及了哪些步骤即可使用编程语言进行翻译。...

过美好生活,做高效程序员 3821

【PAT乙级】1018 锤子剪刀布

PAT 乙级(Basic Level) Practice --- 《1018 锤子剪刀布》 c语言解题代码

Weber Zhou 的博客 1315

稳赢 (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

ESP-IDF下载配合MQTT协议接入云平台实例

通过ESP-IDF下载环境搭建,结合MQTT协议实现设备与云平台通信,详解从配置到连接的完整流程,助力物联网应用开发。重点涵盖espidf下载和MQTT集成关键步骤。

weixin_28913879的博客 454

PAT乙级题解(1018. 锤子剪刀布)

1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,

Hehehehe 630

[华为ensp]双核心的园区网

(给部分只会emm......借鉴的朋友提个醒,在group-member e0/0/2 to e0/0/20是所选,所以到了p l t那会给2-20端口都配置上trunk,别紧张,不是你问题)完成上述配置后,PC1可以ping通HTTP2服务器,Client1可以访问HTTP2服务器的HTTP站点,如果不能就要检查上述是否正确。本次实验主要目的是采用双核心的冗余网络,采用MSTP和VRRP技术,在核心层交换机上配置SC1上配置OSPF协议。SC1交换机上配置VRRP。在SC1上配置DHCP。

2301_78859499的博客 1416

JavaScript PAT乙级题解 1018锤子剪刀布

JavaScript PAT乙级题解 1018锤子剪刀布

weixin_47925230的博客 198

GPD源码分析

gpd使用示例 先看下面一段代码,为标准gpd算法的使用方法,可以看到输入为点云,cloud_camera_; 输入:std::unique_ptr<gpd::util::Cloud> cloud_camera_ 输出: std::vector<std::unique_ptr<gpd::candidate::Hand>> grasps; // detect grasp poses gpd对象:std::unique_ptr<gpd::GraspDetect.

weixin_41003113的博客 2334

SCI论文发表很容易【5】:比较容易中的期刊

整理了一些经管方面比较容易中稿的期刊,可供大家参考

qq_25018077的博客 1678

PAT乙级 1018 锤子剪刀布 C语言题解

#include <stdio.h> int main() { int jiasheng, yisheng, n; int tie; char a, b; tie = jiasheng=yisheng=0; static int i,jia[3],yi[3]; scanf("%d",&n); for(i=0;i<n;i++){ getchar(); scanf("%c %c",&a,&a

weixin_54428443的博客 235

【TIDB】TiDB认证考试PTCA 练习题 题库

TiDB认证考试PTCA 练习题 题库

DBA之路的博客 4721

PAT 乙级 1018 锤子剪刀布

PAT 乙级 1018 锤子剪刀布 #include <bits/stdc++.h> using namespace std; const int N = 10; map<char, int> mp; int timeA[N], timeB[N]; // 下标为 0 1 2 分别表示胜平负 int cntA[N], cntB[N]; // 下标为 0 1 2 分...

小韦同学的博客 185

PyTorch实战(25)——使用PyTorch构建DQN模型

深度Q网络 (Deep Q-learning Network, DQN) 在强化学习领域取得了巨大的成功和广泛的应用,PyTorch 结合 gymnasium 库为我们提供了强大的工具,支持在各种强化学习环境中测试不同类型的深度强化学习模型。在本节中,我们使用 PyTorch 框架构建使用卷积神经网络架构的 DQN 模型,模型通过自主学习掌握 Atari 经典游戏《Pong》的操作策略,最终实现击败电脑对手的竞技目标。

盼小辉丶的博客 3476

精通 Android NDK/JNI:从入门到精通实战与面试精粹

在Android开发中,

郑伟强dev的专栏 144

PAT(B) 1018 锤子剪刀布(C:20分,Java:18分)

题目链接:1018 锤子剪刀布 分析 用一个二维数组保存两人所有回合的手势 甲乙的胜,平,负的次数刚好相反,用3个变量表示就可以 手势单独保存在signs[3]中,注意顺序。题目原文:如果解不唯一,则输出按字母序最小的解。 注意input()中的getchar()不能省略 C /** * Score 20 * Run Time 25ms * @author wowpH * @versi...

wowpH 401

大聪明教你学Java | Seata 2.5 从下载到运行:全流程编译部署教程

Seata 2.5 版本带来了不少特性优化,但实际部署时却发现一个尴尬问题:全网找不到一篇完整覆盖「Git 源码下载→本地编译→环境配置→启动验证」的实操教程。作为一名踩遍无数坑才成功跑通的开发者,我深知这个过程的煎熬:Git 拉取源码后编译失败、依赖版本冲突、配置文件参数混乱、启动时端口占用或连接报错… 每一个坑都能耗费数小时排查。为了让后续开发者少走弯路,我将自己从0到1的完整实操经验整理成文,跟着步骤走即可成功运行 Seata 2.5.

不肯过江东丶 2072

PAT乙级-1018 锤子剪刀布

题目描述:https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344 大致就是给定规则剪刀赢布,布赢石头,石头赢剪刀; 输入格式: 输入第 1 行给出正整数N(≤1E5​​),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、...

YuaJniauha的博客 409

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【UP】锤子剪刀布(优化 AC)

面向 AC 编程,追求 AC 优化!

用编程认知世界,Just coding.... 1998

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

PAT乙级【Java题解合集】

超级全的PAT的JAVA题解

小羊不会飞的博客 3732

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

PAT乙级1018,锤子剪刀布(c++)

思路在代码中已经注释。 #include<iostream> using namespace std; const int Maxn = 100101; int N; char dataMat[Maxn][2]; int hCJB[2][3]; //用于存储甲乙胜利时所出的牌 int hc1[2][3]; //用来存储甲乙的胜、平、分数量 int getValue(char a, char b){ if(a == 'C' &&

weixin_45038753的博客 4万+

PAT(Basic level)Practice 1018 锤子剪刀布 题解

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

masteren的博客 1291

PAT 乙级 1018  锤子剪刀布

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

漫浸天空的雨色的备忘录~ 1220

PAT 1018 锤子剪刀布 (20分)

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

ganlanA的博客 968

【JAVA】PAT 乙级 1018 锤子剪刀布(样例5超时,牛客网通过)

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

TAL_DARIM的博客 341
上一篇: 【PAT乙级】题解-1010 一元多项式求导
下一篇: 【PAT乙级】题解-1022 D进制的A+B
老坛算粉
博客等级 码龄12年 708粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老坛算粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值