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

2023-10-09 05:08

本文主要是介绍洛谷 P1328 生活大爆炸版石头剪刀布,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

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

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

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

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

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

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

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

输入输出格式

输入格式:
输入文件名为rps.in。

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

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

输出格式:
输出文件名为rps.out 。

输出一行, 包含两个整数,以一个空格分隔,分别表示小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%的数据,0 < N ≤ 200 ,0 < NA ≤ 200 , 0 < NB ≤ 200 。


我会告诉你这只是一道模拟题吗?


#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
int n,na,nb,resa,resb,a[205],b[205],c[11][11];
int calc(int x,int y)
{int k=1;if(x>y){swap(x,y);k=-1;}return c[x][y]*k;
}
int main()
{scanf("%d%d%d",&n,&na,&nb);for(int i=0;i<=na-1;i++)scanf("%d",&a[i]);for(int i=0;i<=nb-1;i++)scanf("%d",&b[i]);c[0][1]=-1,c[0][2]=1,c[0][3]=1,c[0][4]=-1;c[1][2]=-1,c[1][3]=1,c[1][4]=-1;c[2][3]=-1,c[2][4]=1;c[3][4]=1;for(int i=0;i<=n-1;i++){int t=calc(a[i%na],b[i%nb]);if(t==1)resa++;else if(t==-1)resb++;}printf("%d %d\n",resa,resb);return 0;
}

这篇关于洛谷 P1328 生活大爆炸版石头剪刀布的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/170547

相关文章

高精度计算(代码加解析,洛谷p1601,p1303)除法待更新

目录 高精度加法 高精度减法 高精度乘法 高精度加法 我们知道在c++语言中任何数据类型都有一定的表示范围。当两个被加数很大时,正常加法不能得到精确解。在小学,我们做加法都采用竖式方法。那么我们也只需要按照加法进位的方式就能得到最终解。 8 5 6+ 2 5 5-------1 1 1 1 加法进位: c[i] = a[i] + b[i];if(c[i] >=

洛谷 凸多边形划分

T282062 凸多边形的划分 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 先整一个半成品,高精度过两天复习一下补上 #include <iostream>#include <algorithm>#include <set>#include <cstring>#include <string>#include <vector>#include <map>

能量项链,洛谷

解释:  环形dp问题还是考虑将环拉直,可以参考我上一篇文章:环形石子合并 [2 3 5 10 2] 3 5 10 将环拉直,[]内是一个有效的区间,可以模拟吸收珠子的过程,         如[2 3 5] <=>(2,3)(3,5)    2是头,3是中间,5是尾 len >= 3:因为最后[2 10 2]是最小的可以合并的有效区间 len <= n + 1因为[2 3

生活杂记1

生命中,总有一些事需要你一生去治愈,我把这些杂记写出来,写完了就不再想了,太内耗了…hahaha~ 因为嘴馋,小时候经常去老姑家,她家有各类零食及平时很少吃的“山珍海味”。去的次数多了,就和她家附近的邻居小孩也混的熟络了。再后来上了高中去的就少了,当年七中统招线521自费线491。我刚好压自费线,举全家之力花了15000读了七中,也没争气,后面高考也一塌糊涂。高二那会,一次去老姑家做客,经

代码随想录Day 36|滑铁卢了,leetcode题目:1049.最后一块石头的重量、494.目标和、474.一和零

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划一、题目题目一:1049.最后一块石头的重量II解题思路: 题目二:494.目标和动态规划 (二维dp数组)#动态规划 (一维dp数组) 题目三: 474.一和零解题思路: 总结 动态规划 有点难了,之前差的有点多,找时间补 一、题目 题目一:1049.最后一块石头的重量II leetcode题目链接

如何看待AI技术对人们生活的影响?

人工智能(AI)技术对人们生活的影响是多方面的,既有积极的一面,也存在一些需要关注的问题。以下是对AI技术在生活中影响的综合看法:   积极影响:   提高效率:AI技术在各行各业中的应用大大提高了工作效率。例如,在制造业中,AI可以优化生产流程,减少资源浪费;在服务业中,聊天机器人可以提供24小时客户服务,提高用户体验。   增强能力:AI扩展了人类的能力,使得一些复杂和危险的任务可以

HDU 2191 珍惜现在,感恩生活(多重背包)

OJ题目 : click here ~~ 题目分析:就一个多重背包,在输入的时候进行二进制拆分,接下来就与01背包一样处理了。关于二进制拆分,这里讲解的不错~ AC_CODE int v[1002] , c[1002];int dp[1002];int main(){int t;cin >> t;while(t--){int n ,m , i , j , a , b , d ,k

云服务器如何提升你的创意生活:必试有趣项目

云服务器都可以做哪些有趣的项目 云服务器因其高效、灵活和可扩展等特点,成为了越来越多人选择的开发和学习平台。如果你拥有一台云服务器,但是不知道能用它做什么有趣的项目,那么这篇文章将为你提供一些有意思的想法。 1. 个人博客/网站 一个个人博客或网站无疑是云服务器的经典用途之一。你可以使用诸如WordPress、Hexo、Ghost等博客框架来创建属于自己的网站,分享知识和生活。 示例项目

营养三餐轻松搭配:健康生活从早餐开始

在如今的快节奏生活中,健康饮食与快捷管用的减调计划,已成为了许多人关注的焦点。合理的三餐搭配不仅能帮助我们控制形体,还能提升生活质量。今天,就让我们一起来学习一套科学的三餐减调套餐,让你在享受美食的同时,也能达成减调目标。 早餐计划:营养均衡,提高吸收消耗率。 早餐是一天中很重要的一餐,营养均衡是必不可少的,但也不要忽略了早上要补充水分这项,也是很重要的一环,水是开启身体系统循环的润滑剂,特别

力扣1049-最后一块石头的重量II(Java详细题解)

题目链接:1049. 最后一块石头的重量 II - 力扣(LeetCode) 前情提要: 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 最近刚学完01背包,所以现在的题解都是以01背包问题为基础再来写的。 如果大家不懂01背包的话,建议可以去学一学,01背包问题可以说是背包问题的基础。 如果大家感兴趣,我后期可以出一篇专门讲解01背包问题。 dp五部曲。 1.确