Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
169821 A班 赵正帆 冲突 C++ 解答错误 0 0 MS 252 KB 975 2024-08-20 17:15:40

Tests(0/2):


#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; }


测评信息: