hdu1849 Rabbit and Grass

2024-02-16 11:38
文章标签 grass rabbit hdu1849

本文主要是介绍hdu1849 Rabbit and Grass,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Rabbit and Grass

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2198    Accepted Submission(s): 1667


Problem Description
大学时光是浪漫的,女生是浪漫的,圣诞更是浪漫的,但是Rabbit和Grass这两个大学女生在今年的圣诞节却表现得一点都不浪漫:不去逛商场,不去逛公园,不去和AC男约会,两个人竟然猫在寝食下棋……
说是下棋,其实只是一个简单的小游戏而已,游戏的规则是这样的:
1、  棋盘包含1*n个方格,方格从左到右分别编号为0,1,2,…,n-1;
2、  m个棋子放在棋盘的方格上,方格可以为空,也可以放多于一个的棋子;
3、  双方轮流走棋;
4、  每一步可以选择任意一个棋子向左移动到任意的位置(可以多个棋子位于同一个方格),当然,任何棋子不能超出棋盘边界;
5、  如果所有的棋子都位于最左边(即编号为0的位置),则游戏结束,并且规定最后走棋的一方为胜者。

对于本题,你不需要考虑n的大小(我们可以假设在初始状态,棋子总是位于棋盘的适当位置)。下面的示意图即为一个1*15的棋盘,共有6个棋子,其中,编号8的位置有两个棋子。



大家知道,虽然偶尔不够浪漫,但是Rabbit和Grass都是冰雪聪明的女生,如果每次都是Rabbit先走棋,请输出最后的结果。

Input
输入数据包含多组测试用例,每个测试用例占二行,首先一行包含一个整数m(0<=m<=1000),表示本测试用例的棋子数目,紧跟着的一行包含m个整数Ki(i=1…m; 0<=Ki<=1000),分别表示m个棋子初始的位置,m=0则结束输入。

Output
如果Rabbit能赢的话,请输出“Rabbit Win!”,否则请输出“Grass Win!”,每个实例的输出占一行。

Sample Input
  
2 3 5 3 3 5 6 0

Sample Output
  
Rabbit Win! Grass Win!
#include<stdio.h>
int main()
{int n,a[1001],i,m;while(scanf("%d",&n)!=EOF&&n){m=0;for(i=0;i<n;i++){scanf("%d",&a[i]);m=m^a[i];}if(m) printf("Rabbit Win!\n");else printf("Grass Win!\n");}return 0;
}


这篇关于hdu1849 Rabbit and Grass的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HDU 1849 Rabbit and Grass NIM游戏

Description 大学时光是浪漫的,女生是浪漫的,圣诞更是浪漫的,但是Rabbit和Grass这两个大学女生在今年的圣诞节却表现得一点都不浪漫:不去逛商场,不去逛公园,不去和AC男约会,两个人竟然猫在寝食下棋……  说是下棋,其实只是一个简单的小游戏而已,游戏的规则是这样的:  1、棋盘包含1*n个方格,方格从左到右分别编号为0,1,2,…,n-1;  2、m个棋子放在棋盘

hdu4777 Rabbit Kingdom 离线树状数组 求询问区间内的区间数

题意:询问区间内有多少个数与区间中其他的数都互质 分析:易得,一个区间内的数的个数减去,与其他数不互质的数即可——即离当前数i左边最近的不互质的数的位置(设为L[i])和右边最近的不互质的数的位置(设为R[i])有一个在区间[L,R]内。那么问题就变成统计:1.区间[L,R]中有多少个数的L[i]或R[i]在区间[L,R]内。2.多少个数的L[i]且R[i]在区间[L,R]内。对于每个询问,答案

uva10382 - Watering Grass(区间覆盖变形)

题目:uva10382 - Watering Grass(区间覆盖变形)   题目大意:要给一片草坪浇水,给定草坪的长度和宽度,给出每个喷头的圆心C和喷水的半径R,问最少要几个喷头可以给整片草坪都浇上水。   解题思路:区间覆盖问题的变形,因为草坪有宽度W,所以这个每个喷头的有效范围是[C- sqrt(R* R - 0.25 * W * W   ,  C + sqrt (R*R - 0.2

Rabbit mq 虚拟机stop无法重启

之前从后台进去,这个地方死活无法重启 然后重启docker 以及mq都不行 docker exec -it <CONTAINER_ID_OR_NAME> /bin/bash rabbitmqctl stop_app rabbitmqctl start_app 最后删除虚拟机,然后重建就行了 rabbitmqctl delete_vhost / rabbitmqctl add_v

RabbitMQ报错Error: unable to connect to node rabbit@xxx: nodedown的解决方式

环境:Win10x64+erlang_otp_19.1x64+RabbitMQ3.6.6 刚开始研究RabbitMQ,就遇到问题: 安装好之后,按照官方安装向导执行rabbitmqctl status命令检查状态时,报如下错误: Bash Status of node 'rabbit@DESKTOP-RVK1IHE' ...Error: unable to connect

rabbit 介绍

从AMQP协议可以看出,MessageQueue、Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件    从应用使用的角度全面的介绍如何利用 Rabbit MQ 构建消息队列以及使用过程中的注意事项。     1. 声明MessageQueue       在Rabbit MQ中,无论是生产者发送消息还是消费者接受消息,都首

消息队列-Rabbit运行机制

Producer(生产者) 和 Consumer(消费者) Producer(生产者) :生产消息的一方(邮件投递者)Consumer(消费者) :消费消息的一方(邮件收件人) 消息一般由 2 部分组成:消息头(或者说是标签 Label)和 消息体。消息体也可以称为 payLoad ,消息体是不透明的,而消息头则由一系列的可选属性组成,这些属性包括 routing-key(路由键)、pri

hdu1222 - Wolf and Rabbit(数学:大水题)

大水题,判断输入的a,b最大公约数是否为1 若不为1,则必然存在一个循环使得无法遍历所有的洞 若为1,则必然可以遍历所有的洞 有m个洞,狼每次跨越n个洞检查 则遍历洞的个数即为m/gcd(m,n) 看了好多人的代码,发现几乎没有人证明这个结论的正确性...这也太不严谨了吧 证明如下: 可知前k+1次搜索的洞的序号为:0, n%m, 2*n%m, 3*n%m, 4*n%m...k*n%

Rabbit MQ和Kafka的区别

RabbitMQ和Kafka是两种流行的消息队列系统,但它们设计理念、架构和使用场景有所不同。了解它们的区别可以帮助我们在不同的应用场景中做出更合适的选择。以下是RabbitMQ和Kafka在多个维度上的对比: 1. 设计理念和目标 RabbitMQ 消息传递(Message Queue): RabbitMQ的核心设计是作为消息中间件,专注于消息的可靠传递和复杂的路由。 消息路由: 提供丰富

spring-rabbit的使用

目前mq中,spring对rabbit做了很好的封装。 rabbit有5种队列:简单队列、work队列、订阅模式、路由模式、通配符模式。 简单队列:生产者将消息发送到队列,消费者从队列中获取消息。 work队列:一个生产者、多个消费者。一个消息只能被一个消费者获取。 订阅模式:一个生产者、多个消费者。每一个消费者都有自己的一个队列,生产者没有将消息直接发送到队列,而是发送到了交换机,每个消