链接传送门:https://www.luogu.org/problemnew/show/P1328

理解题意后一般大家的思路都是这样的:

逐个比较嘛, 反正数据也不大,就200, 如何比较? 当然是用 if 嘛, 罗列所有的情况,反正情况也不对。

写出来的代码就是这样的

#include <cstdio>
using namespace std;
const int MAXN = 200+7;int a1[MAXN];
int a2[MAXN];
int n, n1, n2;int main()
{while(scanf("%d%d%d", &n, &n1, &n2) != EOF){int score_a = 0;int score_b = 0;for(int i=0; i<n1; i++)scanf("%d", &a1[i]);for(int i=0; i<n2; i++)scanf("%d", &a2[i]);for(int i=0; i<n; i++){a1[i] = a1[i%n1];a2[i] = a2[i%n2];}for(int i=0; i<n; i++){switch(a1[i]){case 0:if(a2[i] == 2 || a2[i] == 3)score_a ++;else if(a2[i] == 0)break;elsescore_b ++;break;case 1:if(a2[i] == 0 || a2[i] == 3)score_a ++;else if(a2[i] == 1)break;elsescore_b ++;break;case 2:if(a2[i] == 1 || a2[i] == 4)score_a ++;else if(a2[i] == 2)break;elsescore_b ++;break;case 3:if(a2[i] == 2 || a2[i] == 4)score_a ++;else if(a2[i] == 3)break;elsescore_b ++;break;case 4:if(a2[i] == 0 || a2[i] == 1)score_a ++;else if(a2[i] == 4)break;elsescore_b ++;break;}}printf("%d %d\n", score_a, score_b);}return 0;
}

这个思路简单易懂,一点问题也没有。都是if,运行起来也很快,这也是我看到这道题的第一个想法。

然后我看到讨论区里有说打表的,然后就觉得这个方法更简洁,代码也简单,然后就仔细思考一下,写了一个新的代码。

#include <cstdio>
using namespace std;
const int MAXN = 200+7;int score[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 a1[MAXN];
int a2[MAXN];
int main()
{int n, n1, n2;while(scanf("%d%d%d", &n, &n1, &n2) != EOF){int ans1 = 0;int ans2 = 0;for(int i=0; i<n1; i++)scanf("%d", &a1[i]);for(int i=0; i<n2; i++)scanf("%d", &a2[i]);for(int i=0; i<n; i++){ans1 += score[a1[i % n1] ][a2[i % n2] ];ans2 += score[a2[i % n2] ][a1[i % n1] ];}printf("%d %d\n", ans1, ans2);}return 0;
}

生活大爆炸版石头剪刀布-简单模拟相关推荐

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

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

  2. 解题报告 『生活大爆炸版石头剪刀布(模拟)』

    原题地址 虽说此题难度不大,但依然有着很精妙的做法. 比如下面这位大佬的代码: #include <bits/stdc++.h> using namespace std; #define ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Virtual PC,我真的不敢用你!
  2. Java中Thread类的方法简介
  3. (王道408考研数据结构)第六章图-第四节6:拓扑排序(AOV网、代码、排序规则)
  4. RIPv1和RIPv2的区别和相同点
  5. 解决OpenCV编译时./bin: error while loading shared libraries: libopencv_highgui.so.3.2: cannot open的问题
  6. matlab 自带例子,matlab自带各种分类器的使用示例
  7. Spring核心框架体系结构
  8. mac java环境变量验证_Mac系统 JAVA环境变量配置
  9. 飞地阿拉斯加的传奇故事
  10. python读取包含层级关系的excel
  11. Redis应用场景-排行榜
  12. 我是如何用最简单的前端技术揭示那些灰色产业背后的原理
  13. RGB24 To Yuv420 C语言实现
  14. Linux 驱动 | SPI子系统
  15. css 水平居中和垂直居中
  16. 文本中每行的部分文本格式由CamelWord的形式替换为CAMEL_WORD的形式
  17. Linux音频问题——codec寄存器配置
  18. 正在连接 raw.githubusercontent.com (raw.githubusercontent.com)|::|:443... 失败:拒绝连接。
  19. 利用curl命令访问Kubernetes API server
  20. 【2. Netty的入门案例】

热门文章

  1. php 微信公众号开发,基于 PHP 的微信公众平台开发
  2. 发布 PAIRED:一种生成对抗环境的全新多智能体方法
  3. 新茶饮迎来新玩家,柠檬茶酸涩难甜
  4. 使用服务器备份还原Linux系统
  5. Protoss and Zerg(快速幂)
  6. 使用 NodeBB 搭建的中文社区索引
  7. 弘辽科技:拼多多24小时不发货怎么办?如何发货?
  8. 中国经济形势开年如何看?
  9. 浮点数转换为大写货币金额
  10. Java:判断是一年的第几天