设为首页 加入收藏

TOP

XTU OJ 1209 Alice and Bob 2014(嘉杰信息杯ACM/ICPC湖南程序设计邀请赛暨第六届湘潭市程序设计竞赛)
2015-07-24 06:28:53 来源: 作者: 【 】 浏览:34
Tags:XTU 1209 Alice and Bob 2014 信息 ACM/ICPC 湖南 程序设计 邀请赛 第六届 湘潭 竞赛

Problem Description

The famous "Alice and Bob" are playing a game again. So now comes the new problem which need a person smart as you to decide the winner. The problem is as follows: They are playing on a rectangle paper, Alice and Bob take turn alternatively, for each turn, a people cut the rectangle vertically or horizontally, the result two rectangle after cut must be IDENTICAL, also the side must be integer, after the cut, one rectangle will be descarded. The first people fail to cut lose the game. Of course, Alice makes first as usual.

Input

First Line contains an integer t indicate there are t cases(1≤t≤1000) For each case: The input consists of two integers w and h(1≤w,h≤1,000,000,000), the size of rectangle.

Output

First output Case number For each case output Alice or Bob, indicate the winner.

Sample Input

2
1 2
2 2

Sample Output

Case 1: Alice
Case 2: Bob


上次比赛的题,比赛完了就没去看它了,最近几天发现oj上有题目了,就把这几道题重新做了一下,这道题,上次比赛的时候看到这道题还以为是博弈的题,以为要用DP去做,所以题目都没怎么去看,就直接跳过了,后来看到a的人比较多,就仔细看了一下题目,读懂题意之后,发现其实很简单的一道题,做的慢了。比赛时对于题目难易的分析还是不够; 记录一下自己的思路,首先分析给的w,h是奇数还是偶数,如果两个都是奇数,说明就不能再分了,分到1也不能分了(1也是奇数),当有一个是偶数都还可以继续分,我用的递归,如果能分就一直分下去,直到不能分为止; 下面是ac的代码;
#include 
  
   
#include 
   
     using namespace std; int j; void compete(int w,int h)//递归 { if(w%2==0) //这里还可以写成 (!w&1) { w/=2; j++; compete(w,h); } else if(h%2==0) { h/=2; j++; compete(w,h); } } int main() { int t,i; int w,h; scanf("%d",&t); for(i=1;i<=t;i++) { j=0; scanf("%d%d",&w,&h); compete(w,h); printf("Case %d: ",i); if(j%2==0) printf("Bob\n"); else printf("Alice\n"); } return 0; } 
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇nyoj 7 街区最短路径问题[数学] 下一篇nyoj 37 回文字符串 [DP]

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: