zoukankan      html  css  js  c++  java
  • BZOJ 1982: [Spoj 2021]Moving Pebbles [博弈论 对称]

    给你N堆Stone,两个人玩游戏. 每次任选一堆,首先拿掉至少一个石头,然后移动任意个石子到任意堆中. 谁不能移动了,谁就输了...


    以前在poj做过已经忘记了...

    构造对称,选最多的一堆往其他堆分构造对称局面,先手必胜

    一开始就对称,先手必败

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    using namespace std;
    typedef long long ll;
    const int N=1e5+5;
    inline int read(){
        char c=getchar();int x=0,f=1;
        while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
        while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
        return x*f;
    }
     
    int n,a[N];
    int main(){
        n=read();
        if(n&1) puts("first player");
        else{
            for(int i=1;i<=n;i++) a[i]=read();
            sort(a+1,a+1+n);
            int flag=0;
            for(int i=2;i<=n;i+=2) if(a[i]!=a[i-1]) {flag=1;break;}
            puts(flag ? "first player" : "second player");
        }
    }
  • 相关阅读:
    mysql
    jQuery选择器
    使用JavaScript操作DOM节点元素的常用方法(创建/删除/替换/复制等)
    MVC2.0==>MVC3.0
    sql 邮件发送测试情况
    C#调用存储过程
    设计模式
    sql 分页
    SQL Server 存储过程(转载)
    sqlitehelper封装
  • 原文地址:https://www.cnblogs.com/candy99/p/6551301.html
Copyright © 2011-2022 走看看