题目描述

石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。在《生活大爆炸》第二季第 8 集中出现了一种石头剪刀布的升级版游戏。

升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势:

斯波克:《星际迷航》主角之一。

蜥蜴人:《星际迷航》中的反面角色。

这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果。

现在,小 A 和小 B 尝试玩这种升级版的猜拳游戏。已知他们的出拳都是有周期性规律的,但周期长度不一定相等。例如:如果小 A 以“石头-布-石头-剪刀-蜥蜴人-斯波克”长度为 6的周期出拳,那么他的出拳序列就是“石头-布-石头-剪刀-蜥蜴人-斯波克-石头-布-石头-剪刀-蜥蜴人-斯波克-......”,而如果小 B 以“剪刀-石头-布-斯波克-蜥蜴人”长度为 5 的周期出拳,那么他出拳的序列就是“剪刀-石头-布-斯波克-蜥蜴人-剪刀-石头-布-斯波克-蜥蜴人-......”

已知小 A 和小 B 一共进行 N次猜拳。每一次赢的人得 1 分,输的得 0 分;平局两人都得 00分。现请你统计 N 次猜拳结束之后两人的得分。

输入格式

第一行包含三个整数:N,NA​,NB​,分别表示共进行 N次猜拳、小 A 出拳的周期长度,小 B 出拳的周期长度。数与数之间以一个空格分隔。

第二行包含 NA​ 个整数,表示小 A 出拳的规律,第三行包含 NB​ 个整数,表示小 B 出拳的规律。其中,0表示“剪刀”,1 表示“石头”,2 表示“布”,3 表示“蜥蜴人”,4表示“斯波克”。数与数之间以一个空格分隔。

输出格式

输出一行,包含两个整数,以一个空格分隔,分别表示小 A、小 B 的得分。

分析

我用的最简单的方法就是使用if语句把每种情况都列出来。

代码

#include <bits/stdc++.h>
using namespace std;
int a1[201], b1[201];
int main() {int n, na, nb;int a2 = 0, b2 = 0;int i= 0,j=0;cin >> n >> na >> nb;for (int i = 1; i <= na; i++) {cin >> a1[i];}for (int i = 1; i <= nb; i++) {cin >> b1[i];}for (int a = 1; a <= n; a++) {i++;j++;if (i > na) {i = 1;}if (j > nb) {j = 1;}if (a1[i] == 0 && b1[j] == 1)b2++;if (a1[i] == 0 && b1[j] == 2)a2++;if (a1[i] == 0 && b1[j] == 3)a2++;if (a1[i] == 0 && b1[j] == 4)b2++;if (a1[i] == 1 && b1[j] == 0)a2++;if (a1[i] == 1 && b1[j] == 2)b2++;if (a1[i] == 1 && b1[j] == 3)a2++;if (a1[i] == 1 && b1[j] == 4)b2++;if (a1[i] == 2 && b1[j] == 1)a2++;if (a1[i] == 2 && b1[j] == 0)b2++;if (a1[i] == 2 && b1[j] == 3)b2++;if (a1[i] == 2 && b1[j] == 4)a2++;if (a1[i] == 3 && b1[j] == 1)b2++;if (a1[i] == 3 && b1[j] == 2)a2++;if (a1[i] == 3 && b1[j] == 0)b2++;if (a1[i] == 3 && b1[j] == 4)a2++;if (a1[i] == 4 && b1[j] == 1)a2++;if (a1[i] == 4 && b1[j] == 2)b2++;if (a1[i] == 4 && b1[j] == 3)b2++;if (a1[i] == 4 && b1[j] == 0)a2++;}cout << a2 << " " << b2;return 0;
}

C++模拟与高精度——生活大爆炸版石头剪刀布相关推荐

  1. noip2014 生活大爆炸版 石头剪刀布 (模拟)

    P1905生活大爆炸版 石头剪刀布 Accepted 标签:模拟NOIP提高组2014 描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生 ...

  2. OI-wiki 算法基础 模拟 NOIP2014 生活大爆炸版石头剪刀布 python

    OI-wiki 算法基础 模拟 https://oi-wiki.org/basic/simulate/ 习题答案 NOIP2014 生活大爆炸版石头剪刀布 python https://uoj.ac/ ...

  3. 洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 题解 C/C++

    思路如下 方法一:if else 直接模拟 方法二:初始化一个二维数组 输和平记为0,赢记为1 直接索引 //P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 //#define LO ...

  4. [普及练习场] 生活大爆炸版石头剪刀布

    目录 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 思路 输入 操作 输出 AC代码 总结 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜 ...

  5. 【NOIP2014】生活大爆炸版石头剪刀布

    [NOIP2014]生活大爆炸版石头剪刀布 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第 8 集中出现了一种石头剪 ...

  6. 【洛谷】P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布(详细代码)

    [洛谷]石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏. 1.[题目描述] 2 ...

  7. 洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布

    题目链接:P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布 ...

  8. 2021-08-14 《 生活大爆炸版石头剪刀布》P1328

     原题描述: 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏. 升级 ...

  9. 模拟——生活大爆炸版石头剪刀布(洛谷 P1328)

    模拟算法指的是让程序完整地按照题目叙述的方式运行得到答案! 此题选自洛谷P1328 用if或是switch等来判断,情况实在太多了,特别麻烦. 所以这里采用取巧的办法! 由于是两个人,所以用二维数组存 ...

最新文章

  1. Redis的Pub/Sub模式
  2. Python-OpenCV 处理视频(四): 运动检测
  3. xml 转map dom4j
  4. B. Quasi Binary
  5. python合并多个excel的某些字段_python合并多个excel文件的示例
  6. c语言猜四位数游戏猜10次,C语言猜数字游戏--随机生成4个不相同的数字从小到大排序,用户开始游戏,如果用户猜对数字和数字对应的位置,界面回馈A,如果数字正确位置不正确,则回馈B...
  7. java int转bitmap_Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码...
  8. 分布式跟踪系统:Zipkin
  9. Demo源码放送:打通B/S与C/S !让HTML5 WebSocket与.NET Socket公用同一个服务端!
  10. 如何零代码制作日报、周报管理系统?
  11. Photoshop插件--创建中间调通道蒙板--脚本开发--PS插件
  12. 解释什么是计算机硬件和软件,什么叫软件,什么叫硬件?(要详细)
  13. java初级程序员成长之路
  14. LINUX MPEG4 DVR源代码,还包括一个可以跨平台运行的MPEG4 播放器(需要XVID与SDL开发库包)
  15. 【JavaScript联系练习】实现一个打点计时器
  16. ie浏览器的标准模式与怪异模式的设置与区分方法
  17. 实验05 视图的创建与管理
  18. oracle中重做日志损坏,重做日志文件损坏的恢复笔记
  19. 第二周 Ubuntu的简单介绍与使用
  20. 各公司 Java 面试题目整理(基础+高级+算法+数据库)

热门文章

  1. jquery 实现表格搜索功能
  2. EP2S180F1020I4N小知识
  3. Py_FontMaker和GUI_Py_FontMaker制作嵌入式字库工具,支持内部和外部字库,支持LVGL和非LVGL,支持hash查表,支持RLE压缩,支持图标字体和emoji混合消息显示
  4. 雷军顺为资本投资清单
  5. Z spirit 加强版 可做平安易贷 借贷宝 uber
  6. self参数 - __ init__ ()方法 super(Net, self).__init__()是什么
  7. 最受欢迎的工作城市根本就不是上海北京!
  8. uniapp 使用editor编辑器实现 发布文章的功能
  9. 钢笔工具使用——路径终极教程
  10. hpZ600怎么安装Linux系统,升级更强劲 惠普新Z600工作站完全评测