首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

博弈题集(一)

2013-09-15 
博弈题集(1)题目:看到 这里 的一个分类,打算分四次把它搞定吧,现在看第一部分的题://HDOJ1079 Calendar Ga

博弈题集(1)

题目:看到 这里 的一个分类,打算分四次把它搞定吧,现在看第一部分的题:


//HDOJ1079 Calendar Game

具体情况具体分析就好,这题数据蛮弱,之前写错了也过了。

#include <cstring>#include <cmath>#include <cstdio>#include <algorithm>#include <iostream>#include <vector>#include <map>using namespace std;int a[1010];int main(){    int n,k;    while(scanf("%d%d",&n,&k)!=EOF)    {        int ans=0;        for(int i=1;i<=n;i++)        {            scanf("%d",&a[i]);        }        if(k==1)        {            printf("Alice\n");            continue;        }        if(n&1)        {            ans^=a[1]-(k==2);            for(int i=2;i<n;i+=2)                ans^=(a[i+1]-a[i]-1);        }        else        {            for(int i=1;i<=n;i+=2)                ans^=(a[i+1]-a[i]-1);        }        if(ans)            printf("Alice\n");        else            printf("Bob\n");    }    return 0;}



最后两道没来及学新知识,周末过了稍微闲点的时候再补上。


HDOJ1538 A Puzzle for Pirates [海盗分金问题]
HDOJ3404 Switch lights [Nim积]




热点排行