POJ 1740 A New Stone Game 又是博弈论配对找规律orz 博弈论 规律

Posted 鲸头鹳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 1740 A New Stone Game 又是博弈论配对找规律orz 博弈论 规律相关的知识,希望对你有一定的参考价值。

http://poj.org/problem?id=1740

这个博弈一眼看上去很厉害很高大上让人情不自禁觉得自己不会写,结果又是找规律……

博弈一般后手胜都比较麻烦,但是主要就是找和先手的对应关系,依然看了题解……

如果所有石头堆两两配对的话后手对先手的每一步都可以对应走一步,那么此时后手必胜。

如果不是两两配对,先手可以通过一次操作使石头堆两两配对,此时的两两配对局面面对的是后手,所以先手必胜。

不是两两配对时的操作:首先将所有非配对推按大小排序(只有一堆直接取没就可以了);

然后显然不配对的堆数为奇数时,最大堆能把前面的填成两两配对(剩下的扔了)。为偶数时,最大堆留下和最小堆一样多的,然后依然能把剩余的填成两两配对。

太鬼畜了orz

技术分享图片
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<iostream>
 6 #include<map>
 7 using namespace std;
 8 const int maxn=1010;
 9 int n;
10 int a[maxn]={};
11 int main(){
12     while(~scanf("%d",&n)){
13         if(!n)return 0;
14         for(int i=1;i<=n;i++){
15             scanf("%d",&a[i]);
16         }
17         if(n&1)printf("1\n");
18         else{
19             sort(a+1,a+1+n);
20             int f=0;
21             for(int i=2;i<=n;i+=2){
22                 if(a[i]!=a[i-1]){
23                     f=1;break;
24                 }
25             }
26             printf("%d\n",f);
27         }
28     }
29     return 0;
30 }
View Code

 

以上是关于POJ 1740 A New Stone Game 又是博弈论配对找规律orz 博弈论 规律的主要内容,如果未能解决你的问题,请参考以下文章

poj1740 A New Stone Game

poj1740 A New Stone Game

博弈论(男人八题):POJ 1740 A New Stone Game

POJ 1740 A New Stone Game(多堆博弈找规律)

POJ1740.A New Stone Game

POJ 1740 A New Stone Game(博弈)题解