zoukankan      html  css  js  c++  java
  • HDU 3389

    题意略。

    思路:这个题目是一个阶梯博弈。其实像这种阶梯博弈,威佐夫博弈,巴什博弈,nim博弈,斐波那契博弈,都是要构造一个模型。

    对于特定的模型,都有一个固定的策略。

    对于这个题目,我们可以发现1,2,7,8,13,14.....是一个体系。3,6,9,12,15.....是一个体系。4,5,10,11,16,17.....是一个体系。

    也就是说这一个大游戏可以分成3个小游戏,最终我们只需要把这3个游戏的sg值做异或和就可以了。

    其实这3个小游戏是一样的,我们挑任意一个小游戏来说:

    我们将这个小游戏的盒子下标重新编号,编成1,2,3,4,5.....。其实我们可以发现,如果偶数位上数字的xor和为0,那么先手必败。

     

    详见代码:

    #include<bits/stdc++.h>
    using namespace std;
    
    int T,n,temp;
    
    int main(){
        scanf("%d",&T);
        int cas = 1;
        while(T--){
            scanf("%d",&n);
            int x1 = 0,x2 = 0,x3 = 0;
            for(int i = 1;i <= n;++i){
                scanf("%d",&temp);
                if(i % 6 == 2) x1 ^= temp;
                else if(i % 6 == 5) x2 ^= temp;
                else if(i % 6 == 0) x3 ^= temp;
            }
            printf("Case %d: %s
    ",cas++,(x1 ^ x2 ^ x3) ? "Alice" : "Bob");
        }
        return 0;
    } 
  • 相关阅读:
    至理明言100个经典句子
    ASP操作cookies的方法
    Recordset属性与方法
    VB.NET下用FSO(文件系统对象模型)实现获取硬盘信息
    诺基亚10个不为人知的秘密
    JavaScript的常用事件/方法/特效
    javascript常用方法
    C#操作xml
    URL重写
    数据库之间的区别
  • 原文地址:https://www.cnblogs.com/tiberius/p/9399879.html
Copyright © 2011-2022 走看看