Alice and Bob |
||
Accepted : 133 | Submit : 268 | |
Time Limit : 1000 MS | Memory Limit : 65536 KB |
Problem DescriptionThe 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, InputFirst 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. OutputFirst output Case number For each case output Alice or Bob, indicate the winner. Sample Input2 1 2 2 2 Sample OutputCase 1: Alice Case 2: Bob |
题意:一块长方形纸张。Alice先对折剪下,再由Bob对折剪下。若一个人无论怎么剪面积都是小数的时候。这个人就输了这场比赛。
思路:长方形的面积是长乘以宽,无论以哪一个边对折剪下,那条边都是除以2,若有一条边长度变为小数,则这个人就输了。假设模拟。有可能会超时,运用边找规律。
当两条边都变成奇数的时候,则这个人就输了。也就是说。看偶数能对折几次。
Alice and Bob #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> using namespace std; int main() { int n,m,i,j,k,a,b; scanf("%d",&n); for(m = 1;m <= n;m++) { scanf("%d%d",&a,&b); i = 0; while(a % 2 == 0) { i++; a = a / 2; } while(b % 2 == 0) { i++; b = b / 2; } if(i % 2 == 0) printf("Case %d: Bob\n",m); else printf("Case %d: Alice\n",m); } return 0; }