Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
169821 | A班 赵正帆 | 冲突 | C++ | 解答错误 | 0 | 0 MS | 252 KB | 975 | 2024-08-20 17:15:40 |
#include <bits/stdc++.h> using namespace std; char fie[5][5],q[5][5]; int n,ans,sum,f; int row[5],line[5]; void dfs(int x,int y){ for(int i=y;i<=n;i++) { if(q[x][y]=='.'&&fie[x][y]=='.'&&!row[x]&&!line[y]) { fie[x][y]='R'; row[x]=1; line[y]=1; } else if(q[x][y]=='X') row[x]=line[y]=0; else if(fie[x][y]=='R') continue; if(x==n&&y==n) { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(fie[i][j]=='R') sum++; } } ans=max(ans,sum); sum=0; return; } else if(y==n) { dfs(x+1,1); fie[x][y]='.'; return; } else { dfs(x,y+1); fie[x][y]='.'; return; } } } int main() { while(cin>>n&&n) { ans=0; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cin>>q[i][j]; } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { sum=0; memset(fie,'.',sizeof(fie)); memset(row,0,sizeof(row)); memset(line,0,sizeof(line)); dfs(i,j); } } cout<<ans<<endl; } return 0; }