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 }
View Code

 

posted @ 2015-09-28 12:40  __Meng  阅读(215)  评论(0编辑  收藏  举报