zoukankan      html  css  js  c++  java
  • HDU 2509 Nim博弈变形

    1、HDU 2509   

    2、题意:n堆苹果,两个人轮流,每次从一堆中取连续的多个,至少取一个,最后取光者败

    3、总结:Nim博弈的变形,还是不知道怎么分析,,,,看了大牛的博客。 传送门 

    首先给出结论:先手胜当且仅当(1)所有堆石子数都为1且游戏的SG值为0,(2)存在某堆石子数大于1且游戏的SG值不为0。
    证明:
    (1)若所有堆石子数都为1且SG值为0,则共有偶数堆石子,故先手胜。
    (2) i)只有一堆石子数大于1时,我们总可以对该堆石子操作,使操作后石子堆数为奇数且所有堆得石子数均为1 ii)有超过一堆石子数大于1时,先手将SG值变为0即可,且总还存在某堆石子数大于1。因而,先手胜。

    #include<bits/stdc++.h>
    #define F(i,a,b) for (int i=a;i<b;i++)
    #define FF(i,a,b) for (int i=a;i<=b;i++)
    #define mes(a,b) memset(a,b,sizeof(a))
    #define INF 0x3f3f3f3f
    using namespace std;
    typedef long long LL;
    const int N=10010;
    
    int main()
    {
        int n,a[110];
        while(~scanf("%d",&n)) {
            int ans=0,flag=0;
            F(i,0,n) {
                scanf("%d",&a[i]);
                ans^=a[i];
                if(a[i]>1) flag=1;
            }
            if(!flag) {
                if(ans) puts("No");
                else puts("Yes");
            } else {
                if(ans) puts("Yes");
                else puts("No");
            }
        }
    
        return 0;
    }
    View Code
  • 相关阅读:
    MongoDB安装与启动
    Mac node.js express-generator脚手架安装
    AJAX状态值与状态码
    博客园 Markdown编辑器简要教程
    高效、可维护、组件化的CSS
    如何在mac上运行vue项目
    前端chrome调试
    Light of future-冲刺集合
    团队作业第六次—事后诸葛亮
    Light of future-冲刺总结
  • 原文地址:https://www.cnblogs.com/sbfhy/p/6032046.html
Copyright © 2011-2022 走看看