码迷,mamicode.com
首页 > 其他好文 > 详细

[atcoder002E] Candy Piles [博弈论]

时间:2018-02-23 12:08:24      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:style   pil   sort   target   eve   span   targe   lan   strong   

题面:

传送门

思路:

每一堆糖排成一列,所有列横着放,形成一个阶梯型

两个决策相当于左边一列去掉和最下面一行去掉

那么这个模型可以转化为同样形状的网格图,向左上方走,走到边界的赢·

然后一波数学推导带走

Code:

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 int n,ans,a[100100];
 6 int main(){
 7     scanf("%d",&n);
 8     for(int i=1;i<=n;i++) scanf("%d",&a[i]);
 9     sort(a+1,a+n+1);
10     reverse(a+1,a+n+1);
11     for(int i=1;i<=n;i++){
12         if(i+1>a[i+1]){
13                for(int j=i+1;a[j]==i;j++) ans^=1;
14                ans|=(a[i]-i)&1;
15                puts(ans? "First":"Second");
16                return 0;
17            }    
18     }    
19 } 

 

[atcoder002E] Candy Piles [博弈论]

标签:style   pil   sort   target   eve   span   targe   lan   strong   

原文地址:https://www.cnblogs.com/dedicatus545/p/8459383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!