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
  • 相关阅读:
    git操作详解
    藏医诊疗管理系统
    广告的转化率预估
    python字符串及其内置函数详解
    python数据类型和运算符及运算符的优先级
    lunix常用命令
    返回结果的HTTP状态码
    简单的http协议
    git 上传项目到分支
    安装及使用webpack
  • 原文地址:https://www.cnblogs.com/137shoebills/p/8145786.html
Copyright © 2011-2022 走看看