湘潭邀请赛——Alice and Bob
Posted gavanwanggw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了湘潭邀请赛——Alice and Bob相关的知识,希望对你有一定的参考价值。
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, 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. 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; }
以上是关于湘潭邀请赛——Alice and Bob的主要内容,如果未能解决你的问题,请参考以下文章