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相关推荐

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

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

  2. 【题解】洛谷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} ...

  3. noip2014生活大爆炸版石头剪刀布

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

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

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

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

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

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

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

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

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

  8. 《Python程序设计与算法基础教程(第二版)》江红 余青松,第九章课后习题答案

    推荐阅读 <Python程序设计与算法基础教程(第二版)>江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究 文章目录 例9.1~例9.53 填空题:2 思考题:3~11 上机 ...

  9. 《Python程序设计与算法基础教程(第二版)》江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究

    (还在更新中-) 这篇博客花费了我的大量时间和精力,从创作到维护:若认可本篇博客,希望给一个点赞.收藏 并且,遇到了什么问题,请在评论区留言,我会及时回复的 这本书对Python的知识点的描述很详细, ...

最新文章

  1. 求均值方差_协方差,方差,标准差
  2. 【剑指offer-Java版】07用两个栈实现队列
  3. 小朋友你是否有很多问号?疫情期间不打游戏却在背ABC,百度翻译日活同比增长40%...
  4. 昇腾 OSError: [Errno 22] Invalid argument: ‘protocol‘
  5. CSDN:荣幸获得国内第一大技术社区CSDN 2018博客之星名额!感谢!
  6. python去重语句_Python Dataframe 指定多列去重、求差集的方法
  7. 【立体视觉】双目立体标定与立体校正
  8. 《技术的潜能:商业颠覆、创新与执行》一一2.12决心、愿望和耐力
  9. 好947 Mybatis 配置resultMap 带參数查询Map 注意selectOne数据库返回结果一条数据库 否则会报错...
  10. 闫啸的发明和发现20220901
  11. 博士德服务器帐套维护密码忘记,T+忘记账套主管、admin密码
  12. CAM350 10.5完美精减版
  13. 计算机控制系统与常规仪表控制系统的主要异同点,计算机控制技术复习资料-20210711112641.doc-原创力文档...
  14. vue截取一个字符串_字符串截取方法
  15. mfc 定时器绘制旋转六边形_OpenGL——旋转的六边形(动画)
  16. springboot自定义ClassLoader实现同一个jar支持多版本的使用场景【附源码】
  17. 大长今人物系列:宿命中的孤独灵魂——崔今英(转载)
  18. POLYWORKS案例:MTU航空发动机 - 最前沿的机翼检测技术
  19. WaitGroup is reused before previous Wait has returned
  20. steam游戏上架流程四:Steamworks SDK 的API 方法回调方式 ( Callback )

热门文章

  1. 十五、Events类
  2. 计算机824难不难,南京理工大学
  3. 数组的降维与升维方法
  4. PHP算法之杨辉三角
  5. TP5 生成微信小程序海报图
  6. js 活动倒计时详解
  7. Mac的谷歌浏览器安装Vue.js.devtools插件
  8. 请注意,java中没有引用传递
  9. php实例-微信第三方登录
  10. 中国移动云MAS平台发送普通短信