精华内容
下载资源
问答
  • Openjudge石头剪刀布

    2021-03-28 01:21:08
    石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。 一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头-...

    描述

    石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。

    一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头-剪刀……”,

    就是以“石头-布-石头-剪刀”为周期不断循环的。请问,小A和小B比了N轮之后,谁赢的轮数多?

    输入

    输入包含三行。

    第一行包含三个整数:N,NA,NB,分别表示比了N轮,小A出拳的周期长度,小B出拳的周期长度。

    第二行包含NA个整数,表示小A出拳的规律。

    第三行包含NB个整数,表示小B出拳的规律。

    其中,0表示“石头”,2表示“剪刀”,5表示“布”。相邻两个整数之间用单个空格隔开。

    输出

    输出一行,如果小A赢的轮数多,输出A;如果小B赢的轮数多,输出B;如果两人打平,输出draw。

    样例输入

    10 3 4

    0 2 5

    0 5 0 2

    样例输出

    A

    def result(a,b):
        if a == b:
            return 0
        if a == 5 and b == 0:
            return 1
        if a == 0 and b == 5:
            return -1
        if a < b:
            return 1
        else:
            return -1
    
    s = input().split()
    n,na,nb = int(s[0]),int(s[1]),int(s[2])
    sa = input().split()  # A的规律
    sb = input().split()  # B的规律
    winA = winB = 0 # A和B赢的次数
    ptrA = ptrB = 0 # A和B打平的次数
    for i in range(n):
        r = result(int(sa[ptrA]), int(sb[ptrB])) # 比赛结果
        if r == 1:
            winA += 1
        elif r == -1:
            winB += 1
        ptrA = (ptrA + 1) % na
        ptrB = (ptrB + 1) % nb
    if winA > winB:
        print("A")
    elif winA < winB:
        print("B")
    else:
        print("draw")
    
    展开全文
  • OpenJudge石头剪刀布

    2016-10-29 21:16:32
    百练,判定石头剪刀布游戏结果
  • 16:矩阵剪刀石头布 查看 提交 统计 提问 总时间限制: 5000ms 内存限制: 65536kB 描述 Bart的妹妹Lisa在一个二维矩阵上创造了新的文明。矩阵上每个位置被三种生命形式之一占据:石头剪刀。每天,上下左右...

    16:矩阵剪刀石头布
    查看 提交 统计 提问
    总时间限制: 5000ms 内存限制: 65536kB
    描述
    Bart的妹妹Lisa在一个二维矩阵上创造了新的文明。矩阵上每个位置被三种生命形式之一占据:石头,剪刀,布。每天,上下左右相邻的不同生命形式将会发生战斗。在战斗中,石头永远胜剪刀,剪刀永远胜布,布永远胜石头。每一天结束之后,败者的领地将被胜者占领。

    你的工作是计算出n天之后矩阵的占据情况。

    输入
    第一行包含三个正整数r,c,n,分别表示矩阵的行数、列数以及天数。每个整数均不超过100。
    接下来r行,每行c个字符,描述矩阵初始时被占据的情况。每个位置上的字符只能是R,S,P三者之一,分别代表石头,剪刀,布。相邻字符之间无空格。
    输出
    输出n天之后的矩阵占据情况。每个位置上的字符只能是R,S,P三者之一,相邻字符之间无空格。
    样例输入
    3 3 1
    RRR
    RSR
    RRR
    样例输出
    RRR
    RRR
    RRR

    【代码】
    //已AC

    #include<bits/stdc++.h>
    char a[105][105],b[105][105];
    int dx[8]={0,1,-1,0};
    int dy[8]={1,0,0,-1};
    using namespace std;
    int main()
    {
    	int r,c,n,i1,j1;
    	cin >> r >> c >> n;
    	for (int i=1;i<=r;i++)
    		for (int j=1;j<=c;j++)
    			cin >> a[i][j];
    	
    	for (int k=1;k<=n;k++)
    	{
    		for (int i=1;i<=r;i++)
    			for (int j=1;j<=c;j++)
    				b[i][j]=a[i][j];//每一天战斗前要让 b数组先恢复成上一天的a数组 ,即给a数组做备份 
    				
    		for (int i=1;i<=r;i++)
    		{
    			for (int j=1;j<=c;j++)
    			{
    				for (int d=0;d<=3;d++)//上下左右4个方向 
    				{	i1=i+dx[d];
    				 	j1=j+dy[d];//下一个方向 
    					if(i1<=r&&j1<=c)//判断是否越界 
    					{
    						if(b[i][j]=='R'&&b[i1][j1]=='P')	a[i][j]='P';//要判定的这个位置为R,下右有一个P就要被输,此位置由P占领 
    						if(b[i][j]=='P'&&b[i1][j1]=='S')	a[i][j]='S';//要判定的这个位置为P,下右有一个S就要被输,此位置由S占领 
    						if(b[i][j]=='S'&&b[i1][j1]=='R')	a[i][j]='R';//要判定的这个位置为S,下右有一个R就要被输,此位置由R占领 	
    					}
    				}
    			}
    		}
    	}	
    
    	for (int i=1;i<=r;i++)
    	{
    		for (int j=1;j<=c;j++)
    			cout << a[i][j];
    	cout << endl;
    	}
    
    	return 0;
    }
    
    展开全文
  • 在战斗中,石头永远胜剪刀剪刀永远胜永远胜石头。每一天结束之后,败者的领地将被胜者占领。 你的工作是计算出n天之后矩阵的占据情况。 输入 第一行包含三个正整数r,c,n,分别表示矩阵的行数、列数以及...

    描述
    Bart的妹妹Lisa在一个二维矩阵上创造了新的文明。矩阵上每个位置被三种生命形式之一占据:石头,剪刀,布。每天,上下左右相邻的不同生命形式将会发生战斗。在战斗中,石头永远胜剪刀,剪刀永远胜布,布永远胜石头。每一天结束之后,败者的领地将被胜者占领。

    你的工作是计算出n天之后矩阵的占据情况。

    输入
    第一行包含三个正整数r,c,n,分别表示矩阵的行数、列数以及天数。每个整数均不超过100。
    接下来r行,每行c个字符,描述矩阵初始时被占据的情况。每个位置上的字符只能是R,S,P三者之一,分别代表石头,剪刀,布。相邻字符之间无空格。
    输出
    输出n天之后的矩阵占据情况。每个位置上的字符只能是R,S,P三者之一,相邻字符之间无空格。
    样例输入
    3 3 1
    RRR
    RSR
    RRR
    样例输出
    RRR
    RRR
    RRR

    #include<stdio.h>
    int i,j,n,r,c,x,y;
    char a[120][120],b[120][120],k;
    int pd(int x,int y){//判断是否存在
    	if(x>=0&&x<r&&y>=0&&y<c)return 1;
    	else return 0;
    }
    void qqq(int x,int y){//进行转换
    	if(a[i][j]=='R'&&a[x][y]=='S')b[x][y]='R';
    	if(a[i][j]=='S'&&a[x][y]=='P')b[x][y]='S';
    	if(a[i][j]=='P'&&a[x][y]=='R')b[x][y]='P';
    }
    int main(){
    	
    	scanf("%d %d %d",&r,&c,&n);
    	//printf("%d%d%d",r,c,n);
    	for(i=0;i<r;i++){
    		scanf("%c",&k);
    		for(j=0;j<c;j++){
    			scanf("%c",&a[i][j]);
    			b[i][j]=a[i][j];
    			
    		}
    		
    		
    	}
    	for(ii=0;ii<n;ii++){
    	
    	
    	for(i=0;i<r;i++){
    		for(j=0;j<c;j++){
    				
    				x=i+1;y=j;if(pd(x,y))qqq(x,y);
    				x=i-1;y=j;if(pd(x,y))qqq(x,y);
    				x=i;y=j-1;if(pd(x,y))qqq(x,y);
    				x=i;y=j+1;if(pd(x,y))qqq(x,y);
    			
    		}
    	}
    	for(i=0;i<r;i++){
    		for(j=0;j<c;j++){
    			a[i][j]=b[i][j];
    		}
    	}
    	
    	}
    	for(i=0;i<r;i++){
    		for(j=0;j<c;j++){
    			printf("%c",a[i][j]);
    		}
    		printf("\n");
    	}
    }
    

    NOI(OJ)编程基础篇目录

    展开全文
  • openjudge 1.6 08:石头剪刀布

    千次阅读 2016-07-22 23:28:03
    石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。 一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头...

    总时间限制: 

    1000ms 

    内存限制: 

    65536kB

    描述

    石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。

    一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头-剪刀……”,就是以“石头-布-石头-剪刀”为周期不断循环的。请问,小A和小B比了N轮之后,谁赢的轮数多?

    输入

    输入包含三行。
    第一行包含三个整数:N,NA,NB,分别表示比了N轮,小A出拳的周期长度,小B出拳的周期长度。0 < N,NA,NB < 100。
    第二行包含NA个整数,表示小A出拳的规律。
    第三行包含NB个整数,表示小B出拳的规律。
    其中,0表示“石头”,2表示“剪刀”,5表示“布”。相邻两个整数之间用单个空格隔开。

    输出

    输出一行,如果小A赢的轮数多,输出A;如果小B赢的轮数多,输出B;如果两人打平,输出draw。

    样例输入

    10 3 4
    0 2 5
    0 5 0 2

    样例输出

    A

     

     

     

    #include<stdio.h>
    int main()
    {
        int n,na,nb,i,j=0,k=0,naj=0,nbj=0;
        scanf("%d %d %d",&n,&na,&nb);
        int nac[na],nbc[nb];
        for (i=0;i<na;i++)
            scanf("%d",&nac[i]);
        for (i=0;i<nb;i++)
            scanf("%d",&nbc[i]);
    
    
        for(i=0;i<n;i++,k++,j++)
        {
            if(j==na||k==nb)
            {
                if(j==na)
                    j=0;
                if(k==nb)
                    k=0;
            }
            if(nac[j]==0&&nbc[k]==2)
                naj++;
            else if(nac[j]==2&&nbc[k]==0)
                nbj++;
            else if(nac[j]==0&&nbc[k]==5)
                nbj++;
            else if(nac[j]==5&&nbc[k]==0)
                naj++;
            else if(nac[j]==5&&nbc[k]==2)
                nbj++;
            else if(nac[j]==2&&nbc[k]==5)
                naj++;
    
        }
        if(naj>nbj)
            printf("A");
        else if(naj<nbj)
            printf("B");
        else if(naj==nbj)
            printf("draw");
            return 0;
    }

     

     

    展开全文
  •     题目其实很好理解,就是讲两个人玩石头剪刀布游戏,但他们的出拳是有规律的,我们需要设计程序判断在进行了N轮后的最终结果是谁赢了或者平了。     解决这个问题的核心是怎么把每个人的出拳规律循环到...
  • OPENJUDGE 1.8 16:矩阵石头剪刀布

    千次阅读 2017-02-22 13:32:59
    16:矩阵剪刀石头布 查看 描述 Bart的妹妹Lisa在一个二维矩阵上创造了新的文明。矩阵上每个位置被三种生命形式之一占据:石头剪刀。每天,上下左右相邻的不同生命形式将会发生战斗。在战斗中,...
  • c语言实现石头剪刀布

    2014-05-22 20:29:25
    石头剪刀布课程设计,用c语言实现,代码简单
  • 08:石头剪刀布 总时间限制:1000ms内存限制:65536kB描述 石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。 一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都...
  • 总时间限制: 1000ms 内存限制: 65536kB 描述 ...游戏规则:石头剪刀,布包石头剪刀。 现在,需要你写一个程序来判断石头剪子游戏的结果。 输入 输入包括N+1行: 第一行是一个整数N,表示一
  • 04:石头剪子 总时间限制:1000ms内存限制:65536kB描述 石头剪子,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得...
  • 石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。 一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头-...
  • OpenJudge NOI 1.7 04:石头剪子 【题目考点】 1. 字符串处理 2. 判断字符串相同 s1,s2是字符数组,判断二者是否相同:strcmp(s1,s2)==0为真,二者相同,否则二者不同。 s1,s2是string类对象,判断二者是否相同:...
  • 16:矩阵剪刀石头布

    千次阅读 2017-07-09 20:04:22
    查看 提交 统计 提问 总时间限制: 5000ms 内存...在战斗中,石头永远胜剪刀剪刀永远胜永远胜石头。每一天结束之后,败者的领地将被胜者占领。你的工作是计算出n天之后矩阵的占据情况。输入 第一行包含三个
  • 石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。 一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头...
  • 04:石头剪子 总时间限制:1000ms内存限制:65536kB描述 石头剪子,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得...
  • 菜鸟写C语言———石头剪子

    千次阅读 2020-08-30 21:05:27
    接下来N行的每一行包括两个字符串,表示游戏参与者Player1,Player2的选择(石头、剪子或者是): S1 S2 字符串之间以空格隔开S1,S2只可能取值在{“Rock”, “Scissors”, “Paper”}(大小写敏感)中。 输出格式:...
  • 这道题十分简单,只需要列出所有的条件并判断即可,然后循环一下他们呢出题的规律,就可以了,下面是代码 //rps #include&lt;iostream&gt; #include&lt;cmath&...algorit...
  • 08:石头剪刀布

    千次阅读 2017-08-27 10:55:35
    08:石头剪刀布总时间限制: 1000ms 内存限制: 65536kB 描述 石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。 一天,小A和小B正好在玩石头剪刀布。已知他们的出拳...
  • 石头剪刀布总时间限制: 1000ms 内存限制: 65536kB描述石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有...
  • 16:矩阵剪刀石头布总时间限制: 5000ms 内存限制: 65536kB 描述 Bart的妹妹Lisa在一个二维矩阵上创造了新的文明。矩阵上每个位置被三种生命形式之一占据:石头剪刀。每天,上下左右相邻的不同生命形式将会...
  • 【题目描述】 石头剪子,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,...游戏规则:石头剪刀,布包石头剪刀。 现在,需要你写一个程序来判断石头剪子游...

空空如也

空空如也

1 2 3 4
收藏数 62
精华内容 24
关键字:

openjudge42石头剪刀布

友情链接: Polygon.rar