2020 CCPC-Wannafly Winter Camp Day3 Div.1&2 E棋技哥

鏈接:https://ac.nowcoder.com/acm/contest/4114/E

火山哥和雞老八在下棋。
這張棋盤是  n×mn\times mn×m的。每一個格子要麼是黑色的,要麼是白色的。
兩個人輪流進行操作。火山哥先手。每一次可以選擇一個黑色的格子,以這個格子爲右下角,棋盤左上角爲左上角,將這個矩陣的所有格子的顏色由黑變成白,由白變成黑。如果找不到一個黑色的格子,那麼那個人就輸了。
現在兩個人都想讓火山哥贏,請問誰能贏呢。

輸入描述:

第一行一個整數 T{T}T,表示有 T{T}T 組數據。
每組數據第一行兩個整數 n,m{n,m}n,m,表示棋盤的大小。
接下來 n{n}n 行每行 m{m}m 個字符0(白色)或者1(黑色),描述了這個棋盤的初始狀態。
1≤n,m≤5001\le n,m\le 5001n,m500,1≤T≤201\le T\le 201T20

輸出描述:

對於每組的每個詢問,輸出一行,如果火山哥贏輸出“call”,雞老八贏輸出“aoligei”(不含引號)。
示例1

輸入

複製
3
2 2
11
11
3 2
01
10
11
2 2
00
11

輸出

call
aoligei
aoligei



題解:a[0][0]那個棋是0的話,且你可以翻轉的話,無論你怎麼反轉,翻轉以後a[0][0]都變成1,那麼後手就可以翻轉,所以先手必敗
代碼
#include<iostream>
#include<string>
#include <cstdlib>
#include <algorithm>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<vector>
#include<queue>

const int N = 1000 + 5;
string a[505];

int main()
{
    int t;
    scanf("%d", &t);
    while (t--)
    {
        int m, n;
        scanf("%d%d", &n, &m);
        for (int i = 0;i < n; i++){
            cin >> a[i];
        }
            if (a[0][0] == '0') puts("aoligei");
            else puts("call");
    }
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章