Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<cstdio>#include<iostream>#include<cstring>using namespace std;const int dx[4]={0,1,-1,0};const int dy[4]={1,0,0,-1};char str[7];int ans[31],A[31][31];int XorGuass(int equ, int var) {int row = 0, col = 0;int free_var = 0; //自由变元数量while(row < equ && col < var) {int i;for(i = row; i < equ; i++) if(A[i][col] != 0) break;if(i == equ) { //当前主元均为0,自由变元+1。free_var++;col++;continue;}for(int j = col; j <= var; j++) swap(A[i][j], A[row][j]); //将主元不为0的行交换到上边for(int j = row + 1; j < equ; j++) { //异或消元if(A[j][col]) {for(int k = col; k <= var; k++) A[j][k] ^= A[row][k];}}row++; col++;}for(int i = row; i < equ; i++) if(A[i][var]) return -1; //无解for(int i = var - 1; i >= 0; i--) {ans[i] = A[i][var];for(int j = i + 1; j < var; j++) {