模拟算法指的是让程序完整地按照题目叙述的方式运行得到答案!

此题选自洛谷P1328

用if或是switch等来判断,情况实在太多了,特别麻烦。

所以这里采用取巧的办法! 由于是两个人,所以用二维数组存放对应的结果即可,

根据表中说明,x为甲,y为乙时,图标对应的是x对y的胜负情况,所以对于甲和乙自己的胜负情况,一个将它作为x轴来计算得分!(很重要,不然二维数组就反了)

由于出拳的情况是有周期性的,所以事先存放他们出拳的情况,进行取模同时计算即可。

题目描述

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

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

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

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

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

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

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

输入格式

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

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

输出格式

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

输入输出样例

输入 1

10 5 6
0 1 2 3 4
0 3 4 2 1 0

输出 1

6 2

输入 2

9 5 5
0 1 2 3 4
1 0 3 2 4

输出 2

4 4

说明/提示

对于100\%100%的数据,0 < N ≤200, 0 < NA ≤200,  0 < NB ≤200

解题代码:

#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<queue>
using namespace std;
int n,na,nb;
int ta[201],tb[201];
int vs[5][5] = {{0,0,1,1,0},{1,0,0,1,0},{0,1,0,0,1},{0,0,1,0,1},{1,1,0,0,0}};
int ansa,ansb;
int main(){cin>>n>>na>>nb;for(int i=0;i<na;i++)cin>>ta[i];for(int i=0;i<nb;i++)cin>>tb[i];for(int i=0;i<n;i++){ansa += vs[ta[i % na]][tb[i % nb]];ansb += vs[tb[i % nb]][ta[i % na]];}cout<<ansa<<" "<<ansb<<endl;return 0;
}

模拟——生活大爆炸版石头剪刀布(洛谷 P1328)相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. javascript焦点图(根据图片下方的小框自动播放)
  2. 【小项目关键技术七】MPU6050
  3. 常见的http状态码
  4. Redis(五):List集合数据类型详解
  5. 漫步数学分析三十五——乘法法则与梯度
  6. PowerBI 应用时间智能(生成日期表)
  7. 1.Web前端之CSS3中3D立方体以及3D轮播图
  8. vue组件制作专题 - (mpvue专用)在mpvue中纯自己写css实现简单左右轮播
  9. vue框架导入echarts第一个示例
  10. Web的Cookies,Session,Application
  11. 练习12——二叉树与表达式
  12. 黑苹果自制声卡仿冒驱动(AppleHDA for ALC269)
  13. 吉他效果器amplitube 4 mac 完整破解版永久激活方法
  14. 北京到济南的长途汽车一览表
  15. 平均增长率不用计算机,【程阳解答】如何用计算器或Excel计算年均增长率?
  16. 神策数据杨宁:券商财富管理数字化转型客户全生命周期(视频解读)
  17. zencart php5.6环境,BlueHost主机一键安装ZenCart图文教程
  18. Vue中使用防抖与截流
  19. 智慧书-永恒的处世经典格言:201-240
  20. Mobileye REM地图如何解决高精地图落地难点

热门文章

  1. can总线学习(一)——初识can总线
  2. 如何查看华为服务器配置信息,华为服务器查看配置
  3. android 申请sdcard权限_Android sdcard读写权限问题之中的一个
  4. 远程控制 开源 鳄梨_开发人员关系与鳄梨的共同点
  5. ggeditor推动_谁推动了特殊招聘的文化?
  6. tea 加密密钥生成_加密密钥生成需要的是熵的良好来源
  7. 2019年南大计算机开放日_开放式硬件计算机年
  8. java/02/java运算符,java逻辑控制,java方法的定义及使用
  9. CSS3 Flex布局弹性容器的属性
  10. 计算机科学对个人而言最大的影响,论材料科学对计算机科学技术的深远影响.doc...