Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
169746 C班-张腾午 冲突 C++ 通过 100 0 MS 248 KB 1041 2024-08-20 16:57:05

Tests(2/2):


#include<bits/stdc++.h> using namespace std; const int N=10; char a[N][N]; int res; int n=1; void dfs(int cur,int cnt){ if(cur==n*n){ res=max(res,cnt); return; } int tx=cur/n,ty=cur%n; dfs(cur+1,cnt); if(a[tx][ty]=='.'){ bool flag=true; for(int i=tx;i<n;i++){ if(a[i][ty]=='X'){ break; } if(a[i][ty]=='F'){ flag=false; } } for(int i=tx;i>=0;i--){ if(a[i][ty]=='X'){ break; } if(a[i][ty]=='F'){ flag=false; } } for(int i=ty;i<n;i++){ if(a[tx][i]=='X'){ break; } if(a[tx][i]=='F'){ flag=false; } } for(int i=ty;i>=0;i--){ if(a[tx][i]=='X'){ break; } if(a[tx][i]=='F'){ flag=false; } } if(flag){ a[tx][ty]='F'; dfs(cur+1,cnt+1); a[tx][ty]='.'; } } } int main(){ while(1){ scanf("%d",&n); if(n==0){ break; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ cin>>a[i][j]; } } dfs(0,0); printf("%d\n",res); res=0; } return 0; }


测评信息: