高僧斗法 类似算法尼姆解法

 1 public class 尼姆_nim {
 2
 3     public static void main(String[] args) {
 4         Scanner sc=new Scanner(System.in);
 5         int caseNum=sc.nextInt();//输入有几组
 6         int[][] data=new int[caseNum][];
 7         for(int i=0;i<caseNum;i++) {
 8             int k=sc.nextInt();//每组又有多少数据
 9             data[i]=new int[k];
10             for(int j=0;j<k;j++) {
11                 data[i][j]=sc.nextInt();//输入数据
12             }
13         }
14         sc.close();
15         for(int i=0;i<caseNum;i++) {
16             String res=deal(data[i]);//对每组的数据进行处理
17             System.out.println(res);
18         }
19
20
21     }
22
23     private static String deal(int[] a) {
24         int len=a.length;
25         Arrays.sort(a);//将数据进行排序
26         int res=0;
27         if((len&1)==1) {//数据长度是奇数
28             for(int i=0;i<len;i+=2)
29                 res^=(i==0)?(a[0]-1):(a[i]-a[i-1]-1);
30         }else {
31             for(int i=1;i<len;i+=2)
32                 res^=(a[i]-a[i-1]-1);
33         }
34         if(res==0) {
35             return "先手输";
36         }else
37             return "先手胜";
38     }
39
40 }

原文地址:https://www.cnblogs.com/lang-zi/p/12411354.html

时间: 2024-10-08 02:17:47

高僧斗法 类似算法尼姆解法的相关文章

蓝桥杯 历届试题 高僧斗法

历届试题 高僧斗法 时间限制:1.0s 内存限制:256.0MB 问题描述 古时丧葬活动中经常请高僧做法事.仪式结束后,有时会有"高僧斗法"的趣味节目,以舒缓压抑的气氛. 节目大略步骤为:先用粮食(一般是稻米)在地上"画"出若干级台阶(表示N级浮屠).又有若干小和尚随机地"站"在某个台阶上.最高一级台阶必须站人,其它任意.(如图1所示) 两位参加游戏的法师分别指挥某个小和尚向上走任意多级的台阶,但会被站在高级台阶上的小和尚阻挡,不能越过.两个小和

一次失败的刷题经历:[LeetCode]292之尼姆游戏(Nim Game)

最近闲来无事刷LeetCode,发现这道题的Accept Rate还是挺高的,尝试着做了一下,结果悲剧了,把过程写下来,希望能长点记性.该题的描述翻译成中文如下: 你正在和你的朋友玩尼姆游戏(Nim Game): 桌子上有一堆石块,你和你的朋友轮流去拿这些石块,每次只能拿1块.2块或者3块.在石块被拿光前,最后一次拿到石块的人获胜.你将首先去拿这些石块. 你和你的朋友都非常聪明,并且拥有应对该游戏的最佳策略.写一个函数来决定在给定石块数量的情况下,你是否能够获胜.比如:如果桌子上有4块石块,那么

最强头脑决定战中的尼姆博弈

最近看了一个日本综艺——最强头脑王决定战,顿觉以前看过的国内烧脑节目,类似“一站到底”之流与之相比真是相形见绌.“一站”说到底只是比谁题库背得熟,而日本这个真的是记忆.计算.观察.推理等各种能力的综合考察,比赛选手们各显神通,观众如我看得也是如痴如醉. 其中比赛到第二轮时有一道题如下:有四堆不同色的棋子,每堆分别有3.5.6.7枚,由选手和电脑开始依次从其中取出一些棋子,每次只可取同一堆的任意枚,如此交替直至取完所有棋子,谁取到最后一枚棋子谁输. 当时水上小哥不假思索地取子很轻松就赢了,让评委们

巴什博弈、威佐夫博弈、尼姆博弈

取石子问题 [转]ACM取石子游戏 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可.两个人轮流从堆中取物体若干,规定最后取光物体者取胜.这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理.下面我们来分析一下要如何才能够取胜. (一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次

历届试题 高僧斗法(博弈)

历届试题 高僧斗法 时间限制:1.0s   内存限制:256.0MB 问题描述 古时丧葬活动中经常请高僧做法事.仪式结束后,有时会有“高僧斗法”的趣味节目,以舒缓压抑的气氛. 节目大略步骤为:先用粮食(一般是稻米)在地上“画”出若干级台阶(表示N级浮屠).又有若干小和尚随机地“站”在某个台阶上.最高一级台阶必须站人,其它任意.(如图1所示) 两位参加游戏的法师分别指挥某个小和尚向上走任意多级的台阶,但会被站在高级台阶上的小和尚阻挡,不能越过.两个小和尚也不能站在同一台阶,也不能向低级台阶移动.

高僧斗法—题解

标题:高僧斗法 古时丧葬活动中经常请高僧做法事.仪式结束后,有时会有"高僧斗法"的趣味节目,以舒缓压抑的气氛. 节目大略步骤为:先用粮食(一般是稻米)在地上"画"出若干级台阶(表示N级浮屠).又有若干小和尚随机地"站"在某个台阶上.最高一级台阶必须站人,其它任意.(如图1所示) 两位参加游戏的法师分别指挥某个小和尚向上走任意多级的台阶,但会被站在高级台阶上的小和尚阻挡,不能越过.两个小和尚也不能站在同一台阶,也不能向低级台阶移动. 两法师轮流发出

题解报告:hdu 1850 Being a Good Boy in Spring Festival(尼姆博弈)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1850 Problem Description 一年在外 父母时刻牵挂春节回家 你能做几天好孩子吗寒假里尝试做做下面的事情吧陪妈妈逛一次菜场悄悄给爸爸买个小礼物主动地 强烈地 要求洗一次碗某一天早起 给爸妈用心地做回早餐如果愿意 你还可以和爸妈说咱们玩个小游戏吧 ACM课上学的呢-下面是一个二人小游戏:桌子上有M堆扑克牌:每堆牌的数量分别为Ni(i=1-M):两人轮流进行:每走一步可以任意选择一堆并取

[hdu-5795]A Simple Nim 博弈 尼姆博弈 SG函数打表找规律

[题目]题目链接 Two players take turns picking candies from n heaps,the player who picks the last one will win the game.On each turn they can pick any number of candies which come from the same heap(picking no candy is not allowed).To make the game more int

hdu 1907 尼姆博弈

John Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 3745    Accepted Submission(s): 2116 Problem Description Little John is playing very funny game with his younger brother. There is one big bo