正题
题目大意
n∗nn*nn∗n的矩形,每一个人操作时如果棋盘上有一个k∗kk*kk∗k的矩形空地就可以选择一个点堵上。如果没有就失败了,求必胜方。
解题思路
如果场地上有一个位置堵上后即可堵上所有k∗kk*kk∗k的矩形那么这个点被堵住后就赢了,所以先手必胜。
如果没有这个位置,那么最后场地上剩下一个k∗kk*kk∗k的矩形时先手必胜,也就是如果我们找出两个不相交的k∗kk*kk∗k矩形那么显然先手不会去堵上这两个中的任何一个,也就是其他位置会被优先堵上。所以只要判断其他格子数量的奇偶性即可。
codecodecode
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1100;
int n,k,a[N][N],b[N][N];
char s[N];
bool check(int x,int y)
{x--;y--;return (a[x+k][y+k]+a[x][y]-a[x][y+k]-a[x+k][y])==0;}
int main()
{
// freopen("lcyrcx.in","r",stdin);
// freopen("lcyrcx.out","w",stdout);scanf("%d%d",&n,&k);for(int i=1;i<=n;i++){scanf("%s",s+1);for(int j=1;j<=n;j++)a[i][j]=a[i-1][j]+a[i][j-1]+(s[j]=='1')-a[i-1][j-1];}int z=0;for(int i=1;i<=n-k+1;i++)for(int j=1;j<=n-k+1;j++)if(check(i,j)){b[i][j]++;b[i+k][j+k]++;b[i+k][j]--;b[i][j+k]--;z++;}bool flag=1;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){b[i][j]+=b[i-1][j]+b[i][j-1]-b[i-1][j-1];if(b[i][j]==z)flag=0;}if(flag){if((a[n][n]-2*k*k)&1)printf("rx");else printf("yc");}else{if(z)printf("rx");else printf("yc");}
}
/*
100 20
0000000000000000000000000000000000000000010100000100001111110011011010100110010001111000110010000101
0000000000000000000000000000000000000000111000011001101111011011100100000000110110000011001111001001
0000000000000000000000000000000000000000010010110000010111100101000100100001001111001101101110111000
0000000000000000000000000000000000000000100101001010111110110111111000110100010011101100010001000001
0000000000000000000000000000000000000000001111000100100001011001100110111001111111011111011101100000
0000000000000000000000000000000000000000001001101101000101111010100101000110000010001101001010110111
0000000000000000000000000000000000000000100101011010100011101100111001000001110001101010011101110101
0000000000000000000000000000000000000000110011010011110000100101000111100001010101011001001111001011
0000000000000000000000000000000000000000111111001000101100100000011000100101101101111111101001001111
0000000000000000000000000000000000000000101110000010110000010110010111001100000000001001000110101100
0000000000000000000000000000000000000000001110111111010110101100111110100000101111011010001000100010
0000000000000000000000000000000000000000010001111100101011100110010010000100011111100011101101111010
0000000000000000000000000000000000000000101010000101001010011010011000110111110001101111000001101111
0000000000000000000000000000000000000000000010001110100111011001110110001001011001100110100001001110
0000000000000000000000000000000000000000100011001010001010111000110101010100110001100011100101010011
0000000000000000000000000000000000000000010110111111010010011001100110101110111100001100000000110001
0000000000000000000000000000000000000000111011110010000100101110110010011010100111111110110101000010
0000000000000000000000000000000000000000010010001000010010101011000101100000110100010110100010010111
0000000000000000000000000000000000000000011010110010000101001111010101110100110011001101110001111011
0000000000000000000000000000000000000000111110111101000101110011011010001011001010101011010011111110
0000000000000000000000000000000000000000111000000000110000000100111111111111010001111000010010101111
0000000000000000000000000000000000000000001110011111011000111110101100010011101111101100111011001001
0000000000000000000000000000000000000000011111001101010111011100001101110001001110111001101100011111
0000000000000000000000000000000000000000101001101111111001001010100011111000010110101100011100101010
0000000000000000000000000000000000000000011000101111111101011100001111011011101011100001000011000111
0000000000000000000000000000000000000000100101101110101011010010111000000111010100110100110100011011
0000000000000000000000000000000000000000110100111011000010001001010101100010110110111010111001010001
0000000000000000000000000000000000000000101111000111100001000110011110000111000101101000011011001010
0000000000000000000000000000000000000000101111010000001101000100110110111111111101000101101100000100
0000000000000000000000000000000000000000010101011010001011100000110111001001000010001111111101010010
0000000000000000000000000000000000000000010100011011101101001011111010001000111010111100000111101011
0000000000000000000000000000000000000000010011000100101000100011000111010110001100011001011111101111
0000000000000000000000000000000000000000011101111100111001010100010000011001110101010010001001010000
0000000000000000000000000000000000000000101110100001010011110111101000110111100000111110010011111100
0000000000000000000000000000000000000000100101100010010001011010111110001110000000110111110011100001
0000000000000000000000000000000000000000101101110000111011100000001111100001110101011101110000001001
0000000000000000000000000000000000000000100001010101011101101100101010101100011010111010110111001000
0000000000000000000000000000000000000000110000100010011000100010000011111100101011100111101010111010
0000000000000000000000000000000000000000110001110001100101111010101100001100000100110000001100001111
0000000000000000000000000000000000000000000110000011110010011000010101110110001010011011001001101100
0100010111001110101011011111100110011001001101010001011010100001010110111011010111111100111010101111
1101110101010011010101100011110101011100100111100010011001011011010111111000110001010100110011100111
0111001101011011001111000001100011001011110111011010001001010101101010111101001010010111011110111110
0101101000001110010000110011000010010011011011101100001010110110100011010010111100000101101011101110
1000010011011010111110101111111110111110111010100001111111010100011000000010100101100111000001110100
1111100011111111110111100000011100011111111001011010100101011110011100011011110000111111011011011100
1001000000100110000011111100011110011001111111011000011001010110011011001001101110100110000110101001
1010111101100110100100111100011110011001110001101011010010100111110100000101111000000101110100111011
1010101001101001010100111110101011011011100101110100011001000101110111101001100101110001010100110111
1111010100101110010010100111110100010000000110111001011001100001000110100010000000111110001100101001
1111001011111111001011010110101110011011000110010010101000111011101111000101010101111100001011100000
0101101101000011010011100011011000001111010101101101000110010010110101101110101101110111011010111101
1001010111001100100000111111011110011000101010010110001111000110011101111011000001101101001101101110
0000111111000011110110100001010100101000110001001110010110001001111001110111001011111101010010110110
0010000101111111011111110001111010101011010101000000110100110000011010001011011100101100110110010100
1111010101000100010101100111100000101010110100011100010011010000000100000010111110101001110011100010
1101000011000101011111011000001011010100001000011001110111100011111110000110101011010000101010010101
1001101110001111100001110101001000101001111000110100110101100111011010000000011111010111001000111011
1000000110011001110111110010101110100011001111010011001010100011000111100001101111111011111000010101
0001001100011010010110110100101110101100010101001001110001010001010000001000111001111000110110010001
0000100000111110111101100010001010000111000100010010100100100001110111100110101000010110010101111110
1100000111011101001001000000111101010110101100010110101101110101000010110110100010000111100110011111
1001010111010111000010101110111010010101001100100010100001110000101010000110000101001111011110000000
1100100111101110010000001000101101110001110111001011010011010011000100000100110111011110001111110010
0010110000101010001111011000111010011010111110011001000000111110111011000111011111100111100100100101
0011110000101011010010100000000101011010010111001101000011111111101101111010111110010001100100010001
0100111111010110110100011000101000100011111011100001101110100100100111010010110100100001101101101101
1010011010011010000010001000001001100100010111110110000100000101111001001001111100011110100010100101
1001001000101000110111011010000100001101000011110001000000110101111100100100110100110010001010011100
0001011111011000010001100001111101110011010001001001010101110100000010010111111110101100000111001001
0010010000011010010010111011010110100000111110000010001000101000001000010000000111100111110101101100
1001011100100101011000101100010100111111111101001001100000111000011001100010101010110101110011000100
1010010000100010101101011101000001100101100111110001100111101000101110100010101010111101000010000111
0001010111101110011001001100000011010101001110001111001101011001010101110001111001011000000101011101
0100001110111101010001001010111011100110011000110111011100001100110000011111101000000110010110011011
0000111110110111011010100000110111010101001010101100101011111000111010011110010100101000100110011000
0101000010010110011111110111100000110011010100010011110000111111010101000010000100001010100110111001
0110110011100011110101010101110110110000010000110111110101110010001011011101110000010101110011010110
1001111001011110001110100001011100001010101001000100101001111011101001001101011000110010011001110001
0111010110001011001011110101010110000101101101111011111110111100011010011001101001100110011111001010
1001001011001000000001001001101000000101110011000101000001110100101000100000101001010111100111011010
0100100110111011010001000010101000001010101010000001000010110010111111001000110101001110000000111000
1000000010110011011101010100001011111000111100011011100110011010010000101111000111000111110100010110
0110011111000101100001111001011101111001010010111101101100001100000111110111111001011111010010100011
0001000011100010110111110010000011010000110101011000100010110011001011011101110010010011001010000110
0101101101100101111111010000011011101100000101010011010110110011110010100000010010101111110000110111
0100011111110001100101011000101011111000101001111000010000010101110001010101000111001101000000011110
0011110000110100000010001011000011100100101110100000001111010110111010110011110010110011111100001011
1001010010101101000011011010011011100101100100010101000000110001010110000100100111011101001001101110
0111001111110011001001001110101111011101101001010011111100110111011000100110110100100001011110010000
1110011010011110101000011100000000011110111101010010000011000111101011010010100110000011000111010101
1000111110001111011010011000100111111010010101101101001011001011101111110111000111111001010011101010
1100111111001100101101011010001111011100111000000111111110011010111110101101010010111011000100100110
1001110100101110110110001001111100010000001101000001110001001000011100101110011110010011001011010000
1011010010111100100101101010100111000100010000101100101001011110011100101010111101000000010100110011
1101100001111000000011100111100100101101110100100100111001110000000100001110010010100011001100011111
0010011010100000100001000110111111000010011010111101001000100001000101111010100110110101000110000111
0110100100010101100011001000101000110001011001000110111101000001101101010111011101000010001011111010
0010100111001101101010011011001011100100111000010110000011001011110001010100000111000001010001001010
0011111001110000010010111001111000011101010010100111000111001000001001111010001011111010101100101001
*/