取石子(六)_nyoj_585(博弈-奇异矩阵).java
2013-08-26 20:25
197 查看
取石子(六)
时间限制: 1000 ms | 内存限制: 65535 KB难度: 3
描述最近 TopCoder 的 PIAOYI 和 HRDV 很无聊,于是就想了一个游戏,游戏是这样的:有 n 堆石子 , 两个人轮流从其中某一堆中任意取走一定的石子 , 最后不能取的为输家,注意: 每次只能从一堆取任意个,可以取完这堆,但不能不取。假设 PIAOYI 先取石子,请你帮他判断他是否能赢(假设他们取的过程中不发生失误 , 他们足够聪明
)。
输入 第一行输入n,代表有n组测试数据(n<=10000)
以下每组测试数据包含两行:第一行:包含一个整数m,代表本组测试数据有m(m<=1000)堆石子;
:第二行:包含m个整数Ai(Ai<=100),分别代表第i堆石子的数量。
输出
若PIAOYI赢输出“PIAOYI”,否则输出“HRDV”注意每组结果占一行。。
样例输入
3 2 1 1 3 3 8 11 2 5 10
样例输出
HRDV HRDV PIAOYI
来源原创上传者PIAOYI
#include<stdio.h> int main(){ int N; scanf("%d",&N); while(N--){ int n; scanf("%d",&n); if(!n){ printf("HRDV\n"); continue; } int sum; scanf("%d",&sum); for(int i=1;i<n;i++){ int a; scanf("%d",&a); sum^=a; } if(!sum) printf("HRDV\n"); else printf("PIAOYI\n"); } return 0; }
import java.io.BufferedReader; import java.io.InputStreamReader; public class Main{//用Scanner超时,用这个不知道怎么错了,c可过 public static void main(String[] args) { BufferedReader bf=new BufferedReader(new InputStreamReader(System.in)); try { int N=Integer.parseInt(bf.readLine()); while(N-->0){ int n=Integer.parseInt(bf.readLine()); if(n==0){ System.out.println("HRDV"); continue; } String s[]=bf.readLine().split(" "); int sum=Integer.parseInt(s[0]); for(int i=1;i<n;i++){ sum^=Integer.parseInt(s[i]); } if(sum==0) System.out.println("HRDV"); else System.out.println("PIAOYI"); } } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- 取石子(六)_nyoj_585(博弈-奇异矩阵).java
- 取石子 (四)_nyoj_161(博弈-奇异矩阵).java
- 取石子 (四)_nyoj_161(博弈-奇异矩阵).java
- NYOJ 题目585取石子(六)(nim博弈)
- nyoj-585-取石子(六)
- 取球游戏_nyoj_518(博弈-蓝桥杯原题).java
- nyoj 385-取石子(五)(斐波那契博弈问题)
- nyoj 358 取石子(五)(Fibonacci博弈)(博弈——找规律)
- nyoj 585 取石子(六) 【Nim】
- NYOJ 585 取石子(六)
- nyoj 358 取石子(五)(Fibonacci博弈)(博弈——找规律)
- 取石子游戏_hdu_2516(博弈规律).java
- NYOJ-23-取石子(一)(巴什博弈)
- nyoj 358 取石子(五)(Fibonacci博弈)(博弈——找规律)
- NYOJ 135 & 585 (博弈问题)
- NYOJ 161 取石子(四)(威佐夫博弈)
- nyoj 358 取石子(五)(Fibonacci博弈)(博弈——找规律)
- nyoj 取石子(八)(威佐夫博弈,多种情况)
- nyoj1022 : 取石子(一)(巴什博弈)
- 取球游戏_nyoj_518(博弈-蓝桥杯原题).java