http://acm.hdu.edu.cn/showproblem.php?pid=3544&&Alice's Game

来源:互联网 发布:卷皮淘宝客网站源码 编辑:程序博客网 时间:2024/05/17 16:14

思路:一个切分巧克力的游戏,找到必败点,从而找到规律即可,这里的两个刀手都尽可能的将其分为n*1和1*m的形式从而为自己增加切刀数。一旦先出现n*1种情况就为alice增加n-1次刀数,而出现1*m情况就会给BOb增加m-1次刀数。

AC代码:

#include<iostream>#include<cstdio>#include<string.h>using namespace std;int main(){int T;scanf("%d",&T);for(int k=1;k<=T;++k){int n;scanf("%d",&n);__int64 a=0,b=0;for(int i=0;i!=n;++i){__int64 x,y;scanf("%I64d%I64d",&x,&y);while(1){if(x==1){b+=y-1;break; }if(y==1){a+=x-1;break;}x=x>>1;y=y>>1;}}if(a>b) printf("Case %d: Alice\n",k);else    printf("Case %d: Bob\n",k);}return 0;}


原创粉丝点击