hdu 4642 翻硬币
在一个n*m的棋盘上 每一个格子都有一枚硬币 1表示正面 0表示反面
你每次可以选择一个硬币为正面的点,然后从该点与右下角点形成的矩阵硬币全都反向,直到一个人没有硬币可以选择则输
Alice先手
列举了几种情况 发现只要最右下角的格子是1 则先手必胜
Sample Input
2
2 2 // n m
1 1
1 1
3 3
0 0 0
0 0 0
0 0 0
Sample Output
Alice
Bob
1 # include <iostream> 2 # include <cstdio> 3 # include <cstring> 4 # include <algorithm> 5 # include <string> 6 # include <cmath> 7 # include <queue> 8 # include <list> 9 # define LL long long 10 using namespace std ; 11 12 int n , m ; 13 14 int main() 15 { 16 //freopen("in.txt","r",stdin) ; 17 int T ; 18 scanf("%d" , &T) ; 19 while(T--) 20 { 21 scanf("%d %d" , &n , &m) ; 22 int i , j , x; 23 for (i = 0 ; i < n ; i++) 24 for (j = 0 ; j < m ; j++) 25 scanf("%d" , &x) ; 26 if (x) 27 printf("Alice\n") ; 28 else 29 printf("Bob\n") ; 30 } 31 32 33 return 0; 34 }