1720: 无聊的游戏
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 172 Solved: 33
Submit Status Web Board
Description
A、B两人玩下面的游戏:从集合E={1,2,...,n}中随机取k个数。若这k个数的和是偶数,则A获胜;否则B获胜。请你判断游戏对谁有利。
Input
第一行为一个整数T,表示数据组数。接下来T行,每行包含两个正整数n,k(k<=n<=10^9),用空格隔开。
Output
对于每组数据,若游戏对A有利,输出A,若对B有利,输出B,若游戏公平,输出F。每个答案一行。
Sample Input
2 1 1 2 1
Sample Output
B F
n = 5 时 (E = {1,2,3,4,5})
![]()
n = 6 时 (E = {1,2,3,4,5,6})
![]()
n = 7 时 (E = {1,2,3,4,5,6,7})
![]()
n = 8 时 (E = {1,2,3,4,5,6,7,8})
![]()
n = 9 时 (E = {1,2,3,4,5,6,7,8,9})
![]()
n = 10 时 (E = {1,2,3,4,5,6,7,8,9,10})
![]()
接下来便是找规律了,当n为偶数时,对4取余,若是奇数,则公平,若是2偏向b,0的话偏向a;
若为奇数,不存在公平情况:
余数1,2偏b,其余偏a;
#include<stdio.h> int main() { int n,k,a,b; int t; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); if(n%2==1) { k=k%4; if(k>0&&k<=2) printf("B\n"); else printf("A\n"); } else {k=k%4; if(k==1||k==3) printf("F\n"); if(k==2) printf("B\n"); if(k==0) printf("A\n"); } } }