画家の問題
1621 ワード
http://cxsjsxmooc.openjudge.cn/test/Y/
コード
コード
#include
#include
#include
#include
using std::cin;
using std::cout;
using std::endl;
int map[20][20];//
int copy[20][20];//
int line[20];//
char col[20];//
int n;
int min;
int count;
void draw(int x,int y){//
map[x][y]=!map[x][y];
map[x-1][y]=!map[x-1][y];
map[x+1][y]=!map[x+1][y];
map[x][y-1]=!map[x][y-1];
map[x][y+1]=!map[x][y+1];
count++;
}
bool guess(){
//
for(int i=2; i<=n; i++)
for(int j=1; j<=n; j++)
if(map[i-1][j] == 0)
draw(i,j);
//
for(int k=1; k<=n; k++)
if(map[n][k] != 1)
return false;
if(count < min)
min = count;
return true;
}
void getLine(int k){
//
int j=n;
while(j>0){
line[j]=k%2;
k/=2;
j--;
}
}
int main(){
int w;
cin>>w;
while(w--){
cin>>n;
min=n*n+1;
for (int i = 1; i <=n; ++i) {
scanf("%s",col);
//
for (int j = 1; j <=n ; ++j) {
if(col[j-1]=='w'){
copy[i][j]=0;
}
else{
copy[i][j]=1;
}
}
}
//
for (int k = 0; k