模拟——生活大爆炸版石头剪刀布(洛谷 P1328)
模拟算法指的是让程序完整地按照题目叙述的方式运行得到答案!
此题选自洛谷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)相关推荐
- 洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
题目链接:P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布 ...
- 2021-08-14 《 生活大爆炸版石头剪刀布》P1328
原题描述: 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏. 升级 ...
- 【洛谷】P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布(详细代码)
[洛谷]石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏. 1.[题目描述] 2 ...
- 洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 题解 C/C++
思路如下 方法一:if else 直接模拟 方法二:初始化一个二维数组 输和平记为0,赢记为1 直接索引 //P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 //#define LO ...
- noip2014 生活大爆炸版 石头剪刀布 (模拟)
P1905生活大爆炸版 石头剪刀布 Accepted 标签:模拟NOIP提高组2014 描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生 ...
- OI-wiki 算法基础 模拟 NOIP2014 生活大爆炸版石头剪刀布 python
OI-wiki 算法基础 模拟 https://oi-wiki.org/basic/simulate/ 习题答案 NOIP2014 生活大爆炸版石头剪刀布 python https://uoj.ac/ ...
- [普及练习场] 生活大爆炸版石头剪刀布
目录 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 思路 输入 操作 输出 AC代码 总结 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜 ...
- 【NOIP2014】生活大爆炸版石头剪刀布
[NOIP2014]生活大爆炸版石头剪刀布 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第 8 集中出现了一种石头剪 ...
- 洛谷——P1328 生活大爆炸版石头剪刀布
题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏. 升级版游戏在传统的 ...
最新文章
- javascript焦点图(根据图片下方的小框自动播放)
- 【小项目关键技术七】MPU6050
- 常见的http状态码
- Redis(五):List集合数据类型详解
- 漫步数学分析三十五——乘法法则与梯度
- PowerBI 应用时间智能(生成日期表)
- 1.Web前端之CSS3中3D立方体以及3D轮播图
- vue组件制作专题 - (mpvue专用)在mpvue中纯自己写css实现简单左右轮播
- vue框架导入echarts第一个示例
- Web的Cookies,Session,Application
- 练习12——二叉树与表达式
- 黑苹果自制声卡仿冒驱动(AppleHDA for ALC269)
- 吉他效果器amplitube 4 mac 完整破解版永久激活方法
- 北京到济南的长途汽车一览表
- 平均增长率不用计算机,【程阳解答】如何用计算器或Excel计算年均增长率?
- 神策数据杨宁:券商财富管理数字化转型客户全生命周期(视频解读)
- zencart php5.6环境,BlueHost主机一键安装ZenCart图文教程
- Vue中使用防抖与截流
- 智慧书-永恒的处世经典格言:201-240
- Mobileye REM地图如何解决高精地图落地难点
热门文章
- can总线学习(一)——初识can总线
- 如何查看华为服务器配置信息,华为服务器查看配置
- android 申请sdcard权限_Android sdcard读写权限问题之中的一个
- 远程控制 开源 鳄梨_开发人员关系与鳄梨的共同点
- ggeditor推动_谁推动了特殊招聘的文化?
- tea 加密密钥生成_加密密钥生成需要的是熵的良好来源
- 2019年南大计算机开放日_开放式硬件计算机年
- java/02/java运算符,java逻辑控制,java方法的定义及使用
- CSS3 Flex布局弹性容器的属性
- 计算机科学对个人而言最大的影响,论材料科学对计算机科学技术的深远影响.doc...