思路其实很简单,就是遍历,发现有白的就代表这一行(或列)没有染色,否则就使计数器加1,行和列要分别遍历。
我一直没有AC的原因是没有考虑特殊情况——全黑。
全黑时只需要染八次,而不是照这个算法的16次。
#include<stdio.h>
int main(){
int i,j,flag=1,cnt=0;
char a[8][8];
for(i=0;i<8;i++){
scanf("%s",a[i]);
getchar();
}
for(i=0;i<8;i++){
flag=1;
for(j=0;j<8;j++)
if(a[i][j]=='W'){
flag=0;
break;
}
if(flag)
cnt++;
}
for(j=0;j<8;j++){
flag=1;
for(i=0;i<8;i++)
if(a[i][j]=='W'){
flag=0;
break;
}
if(flag)
cnt++;
}
if(cnt==16)
cnt/=2;
printf("%d",cnt);
return 0;
}
说起来我当时输入八个字符串还是用的复杂度平方阶的单个字符输入(手动捂脸),现在看不下去了改了。