Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
169808 国际新闻 冲突 C++ 解答错误 0 1 MS 248 KB 1081 2024-08-20 17:10:21

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=i+1){ 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]=0; line[y]=0; } else if(fie[x][y]=='R'){ continue; } if(x==n && y==n){ for(int i=1;i<=n;i=i+1){ for(int j=1;j<=n;j=j+1){ if(fie[i][j]=='R'){ sum=sum+1; } } } 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=i+1){ for(int j=1;j<=n;j=j+1){ cin>>q[i][j]; } } for(int i=1;i<=n;i=i+1){ for(int j=1;j<=n;j=j+1){ sum=0; memset(fie,'.',sizeof(fie)); memset(row,0,sizeof(row)); memset(line,0,sizeof(line)); dfs(i,j); } } cout<<ans<<endl; } return 0; }


测评信息: