zoukankan      html  css  js  c++  java
  • 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
    ");
    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
    ",f);
    27         }
    28     }
    29     return 0;
    30 }
    View Code
  • 相关阅读:
    JAVA反射机制
    Android插件化
    MFC项目的建立
    [ACM]躲猫猫
    [ACM]某一天的n天后是几年几月几日
    [ACM]括号配对问题
    开发中好用的网站
    TCP与UDP(实时通讯)
    NSSet基本使用
    NSPredicate(正则表达式)
  • 原文地址:https://www.cnblogs.com/137shoebills/p/8145786.html
Copyright © 2011-2022 走看看