POJ画家问题
程序员文章站
2024-03-17 18:02:52
...
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<algorithm>
using namespace std;
int n;
int puzzle[20][20],press[20][20];
bool guess(){
for(int i=2;i<=n;i++) {
for(int j=1;j<=n;j++){
press[i][j]=(press[i-1][j]+press[i-2][j]+press[i-1][j-1]+press[i-1][j+1]+puzzle[i-1][j])%2;
}
}
bool flag=true;
for(int j=1;j<=n;j++) if((press[n][j]+press[n-1][j]+press[n][j-1]+press[n][j+1]+puzzle[n][j])%2==1) flag=false;
return flag;
}
void enumate(){
while(guess()==false&&press[1][n+1]==0){
press[1][1]++;
for(int i=1;i<20;i++){
if(press[1][i]==2){
press[1][i+1]++;
press[1][i]=0;
}
}
}
int x=0;
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(press[i][j]==1) x++;
if(press[1][n+1]==1) printf("inf");
else printf("%d",x);
}
int main(){
cin>>n;
char c;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>c;
if(c=='w') puzzle[i][j]=1;
else puzzle[i][j]=0;
}
}
enumate();
return 0;
}
上一篇: 【递归】放苹果
推荐阅读
-
POJ画家问题
-
递归_放苹果问题
-
Android关于overdraw过度绘制问题的解决办法getWindow().setBackgroundDrawable(null);
-
【CCF 201312-3】最大的矩形(单调栈) & 【POJ 2823】Sliding Window(单调队列) Apare_xzc
-
Android关于overdraw过度绘制问题的解决办法getWindow().setBackgroundDrawable(null);
-
C#将参数传入python时遇到的问题
-
POJ P2018 Best Cow Fences
-
js数值比较使用的问题
-
shell 变量比较时遇到的问题(unexpected operator) 的解决方法
-
蓝桥杯-基础训练-2n皇后问题