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

输入格式:
输入第1行给出正整数N(<=105),即双方交锋的次数。随后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

关键思想:对于这种环环相扣题,可以将B,C,J看成0,1,2。
当(甲的数+1%3)=乙时,甲胜
当甲的数=乙时,平
其他情况,甲负
这样就避免了过多的分类讨论

#include <cstdio>
int change(char a)
{   if (a=='B') return 0;if (a=='C') return 1;if (a=='J') return 2;
}
char exchange[3]={'B','C','J'};//数字转字符
int  main(){int  n;char a,b;int W_j=0,W_y=0,D_j=0,D_y=0,P=0;int jia[3]={0},yi[3]={0};scanf("%d",&n);for(int i=0;i<n;i++){getchar();//消除换行符scanf("%c %c",&a,&b);int j=change(a);int q=change(b);if((j+1)%3==q) {W_j++;D_y++;jia[j]++;}else if(j==q){ P++;}//这个else不能省略 else{W_y++;D_j++;yi[q]++;}}printf("%d %d %d\n",W_j,P,D_j);printf("%d %d %d\n",W_y,P,D_y);int k1=0,k2=0;for(int i=0;i<3;i++){    if (jia[i]>jia[k1])  k1=i;if (yi[i]>yi[k2])  k2=i;}printf("%c %c",exchange[k1],exchange[k2]);return 0;
}

算法入门模拟-剪刀石头布相关推荐

  1. 语法入门*算法入门题单

    作者:王清楚 链接:https://ac.nowcoder.com/discuss/817596?type=101&order=0&pos=1&page=4&chann ...

  2. 【新手上路】语法入门算法入门题单

    作者:王清楚 链接:[新手上路]语法入门&算法入门题单_ACM竞赛_ACM/CSP/ICPC/CCPC/比赛经验/题解/资讯_牛客竞赛OJ_牛客网 来源:牛客网 介绍:本题单分为语法入门和算法 ...

  3. javascript进制转换_《算法笔记》3.5小节——入门模拟-gt;进制转换

    @[TOC] # Contest100000579 - <算法笔记>3.5小节--入门模拟->进制转换 ## 例题 ### PATB1022 PTA | 程序设计类实验辅助教学平台 ...

  4. php打印n乘n沙漏形状图形,《算法笔记》3.3小节——入门模拟-图形输出

    @[TOC] Contest100000577 - <算法笔记>3.3小节--入门模拟->图形输出 1933 Problem A 输出梯形 #include #include #in ...

  5. 【算法笔记题解】《算法笔记知识点记录》第三章——入门模拟1——简单模拟

    如果喜欢大家还希望给个收藏点赞呀0.0 相关知识点大家没基础的还是要看一下的,链接: <算法笔记知识点记录>第三章--入门模拟 由于放原题的话文章实在太长,所以题多的话我只放思路和题解,大 ...

  6. 《算法图解》读书笔记—像小说一样有趣的算法入门书

    前言 学习算法课程的时候,老师推荐了两本算法和数据结构入门书,一本是<算法图解>.一本是<大话数据结构>,<算法图解>这本书最近读完了,读完的最大感受就是对算法不再 ...

  7. 牛客:【2021秋季算法入门班第七章习题:动态规划1】部分题解:方块与收纳盒、舔狗舔到最后一无所有、可爱の星空、[NOIP1999]拦截导弹

    题单链接:牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)  P1001 方块与收纳盒 传送门:1001-方块与收纳盒_2021秋季 ...

  8. 遗传、退火算法入门(转载)

    优化算法入门系列文章目录(更新中): http://www.cnblogs.com/heaad/archive/2010/12/23/1914725.html 1. 模拟退火算法 2. 遗传算法 遗传 ...

  9. PAT 甲级-入门模拟

    阅读原文 当时准备 PAT 竞赛时候,买了本<算法笔记>,书中将题型进行分类,是我最系统的一次算法学习,对题型判断.解题思路都有了新的认知,本篇文章主要记录当时刷的入门模拟题,算是比较简单 ...

最新文章

  1. java date类_Java的败笔-Date类
  2. linux日志idProduct,linux – 机器ID是uuid吗?
  3. LeetCode686 Repeated String Match(字符串匹配)
  4. opencv 图像旋转_用Dlib和OpenCV还能做什么?这个开源项目实现了驾驶员疲劳检测...
  5. SparkSQL操作Hive
  6. python 爬视频下载_Python爬虫进阶之爬取某视频并下载的实现
  7. Mysql orangepi_SSH远程登录香橙派Orange Pi Zero2开发板的操作方法
  8. linux卸载splunk,linux安装splunk-enterprise
  9. According to the overall view of the patent
  10. Python、Java 在线笔试
  11. 11.1-12.31推荐文章汇总
  12. springboot中ehcache的使用
  13. python matplotlib三维画图、二维画图常用命令总结
  14. 七夕情人节表白网站代码 3D流星雨旋转相册 程序员专属情人节表白网站
  15. chrome浏览器改为黑色背景
  16. 浅谈Lattepanda
  17. 熬夜加班问题总结反思
  18. Linux下 debug手段
  19. 我奋斗了18年才和你坐在一起喝咖啡与我奋斗了18年不是为了和你一起喝咖啡
  20. HTML基础 + 实例解析

热门文章

  1. 雨林木风最新万能GHOST系统制作教程
  2. Hyperledger Fabric之Explorer区块链浏览器
  3. python新手入门程序——实验5
  4. Day 4 R基础概念——向量、矩阵
  5. 数组 reduce 简介及使用场景
  6. python如何开发网站_如何用Python写一个小网站?
  7. 51Nod NOIP2018提高组省一冲奖班模测训练
  8. Ardupilot代码学习笔记
  9. Android适配虚拟按键-亲测华为小米手机有效
  10. CC00009.CloudOpenStack——|OpenStack组件.V02|——|openstack-glance|controller节点下部署glanc