OI-wiki 算法基础 模拟 NOIP2014 生活大爆炸版石头剪刀布 python
OI-wiki 算法基础 模拟
https://oi-wiki.org/basic/simulate/
习题答案
NOIP2014 生活大爆炸版石头剪刀布 python
https://uoj.ac/problem/15
直接模拟N次
N, NA, NB = list(map(int, input().split()))
cycleA = list(map(int, input().split()))
cycleB = list(map(int, input().split()))
scoreA = 0
scoreB = 0
win_lose_table = [[0] * 5 for _ in range(5)]
temp = [[0, 2], [0, 3], [1, 3], [2, 4], [3, 4], [1, 0], [4, 0], [2, 1], [4, 1], [3, 2]]
for element in temp: i = element[0] j = element[1] win_lose_table[i][j] = 1
# 如果数据范围比较小的话,可以直接循环N次
for i in range(N): i1 = i % NA i2 = i % NB if win_lose_table[cycleA[i1]][cycleB[i2]] == 1: scoreA += 1 if win_lose_table[cycleB[i2]][cycleA[i1]] == 1: scoreB += 1
print(f"{scoreA} {scoreB}")
每 NA NB 次做一次记录
N, NA, NB = list(map(int, input().split()))
cycleA = list(map(int, input().split()))
cycleB = list(map(int, input().split()))
scoreA = 0
scoreB = 0
win_lose_table = [[0] * 5 for _ in range(5)]
temp = [[0, 2], [0, 3], [1, 3], [2, 4], [3, 4], [1, 0], [4, 0], [2, 1], [4, 1], [3, 2]]
for element in temp: i = element[0] j = element[1] win_lose_table[i][j] = 1
# 如果数据范围比较大的话,可以先求出来一个循环内的分数 即 NA * NB 内的分数,然后看有几次循环
cycle = N // (NA * NB)
if cycle < 1: for i in range(N): i1 = i % NA i2 = i % NB if win_lose_table[cycleA[i1]][cycleB[i2]] == 1: scoreA += 1 if win_lose_table[cycleB[i2]][cycleA[i1]] == 1: scoreB += 1
else: for i in range(NA * NB): i1 = i % NA i2 = i % NB if win_lose_table[cycleA[i1]][cycleB[i2]] == 1: scoreA += 1 if win_lose_table[cycleB[i2]][cycleA[i1]] == 1: scoreB += 1 scoreA *= cycle scoreB *= cycle for i in range(N % (NA * NB)): i1 = i % NA i2 = i % NB if win_lose_table[cycleA[i1]][cycleB[i2]] == 1: scoreA += 1 if win_lose_table[cycleB[i2]][cycleA[i1]] == 1: scoreB += 1
print(f"{scoreA} {scoreB}")
OI-wiki 算法基础 模拟 NOIP2014 生活大爆炸版石头剪刀布 python相关推荐
- noip2014 生活大爆炸版 石头剪刀布 (模拟)
P1905生活大爆炸版 石头剪刀布 Accepted 标签:模拟NOIP提高组2014 描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生 ...
- 【题解】洛谷P1328[NOIP2014]生活大爆炸版石头剪刀布 模拟
题目链接 #include<cstdio> int judge[5][5]={{0,-1,1,1,-1},{1,0,-1,1,-1},{-1,1,0,-1,1},{-1,-1,1,0,1} ...
- noip2014生活大爆炸版石头剪刀布
题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏. 升级版游戏在传统的 ...
- 【NOIP2014】生活大爆炸版石头剪刀布
[NOIP2014]生活大爆炸版石头剪刀布 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第 8 集中出现了一种石头剪 ...
- 洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
题目链接:P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布 ...
- 洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 题解 C/C++
思路如下 方法一:if else 直接模拟 方法二:初始化一个二维数组 输和平记为0,赢记为1 直接索引 //P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 //#define LO ...
- 【洛谷】P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布(详细代码)
[洛谷]石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏. 1.[题目描述] 2 ...
- 《Python程序设计与算法基础教程(第二版)》江红 余青松,第九章课后习题答案
推荐阅读 <Python程序设计与算法基础教程(第二版)>江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究 文章目录 例9.1~例9.53 填空题:2 思考题:3~11 上机 ...
- 《Python程序设计与算法基础教程(第二版)》江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究
(还在更新中-) 这篇博客花费了我的大量时间和精力,从创作到维护:若认可本篇博客,希望给一个点赞.收藏 并且,遇到了什么问题,请在评论区留言,我会及时回复的 这本书对Python的知识点的描述很详细, ...
最新文章
- 求均值方差_协方差,方差,标准差
- 【剑指offer-Java版】07用两个栈实现队列
- 小朋友你是否有很多问号?疫情期间不打游戏却在背ABC,百度翻译日活同比增长40%...
- 昇腾 OSError: [Errno 22] Invalid argument: ‘protocol‘
- CSDN:荣幸获得国内第一大技术社区CSDN 2018博客之星名额!感谢!
- python去重语句_Python Dataframe 指定多列去重、求差集的方法
- 【立体视觉】双目立体标定与立体校正
- 《技术的潜能:商业颠覆、创新与执行》一一2.12决心、愿望和耐力
- 好947 Mybatis 配置resultMap 带參数查询Map 注意selectOne数据库返回结果一条数据库 否则会报错...
- 闫啸的发明和发现20220901
- 博士德服务器帐套维护密码忘记,T+忘记账套主管、admin密码
- CAM350 10.5完美精减版
- 计算机控制系统与常规仪表控制系统的主要异同点,计算机控制技术复习资料-20210711112641.doc-原创力文档...
- vue截取一个字符串_字符串截取方法
- mfc 定时器绘制旋转六边形_OpenGL——旋转的六边形(动画)
- springboot自定义ClassLoader实现同一个jar支持多版本的使用场景【附源码】
- 大长今人物系列:宿命中的孤独灵魂——崔今英(转载)
- POLYWORKS案例:MTU航空发动机 - 最前沿的机翼检测技术
- WaitGroup is reused before previous Wait has returned
- steam游戏上架流程四:Steamworks SDK 的API 方法回调方式 ( Callback )