Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
168808 C班 郑筱橦 冲突 C++ 通过 100 0 MS 252 KB 1548 2024-08-20 13:48:43

Tests(2/2):


#include <iostream> #include<bits/stdc++.h> using namespace std; int ans,n; char str[10][10]; void dfs(int p,int cnt) { if(p==n*n) { ans=max(ans,cnt); return; } int x=p/n,y=p%n; dfs(p+1,cnt); if(str[x][y]=='.') { int op=1; for(int i=x;i<n;i++) { if(str[i][y]=='X') { break; } if(str[i][y]=='Q') { op=0; } } for(int i=x;i>=0;i--) { if(str[i][y]=='X') { break; } if(str[i][y]=='Q') { op=0; } } for(int i=y;i<n;i++) { if(str[x][i]=='X') { break; } if(str[x][i]=='Q') { op=0; } } for(int i=y;i>=0;i--) { if(str[x][i]=='X') { break; } if(str[x][i]=='Q') { op=0; } } if(op) { str[x][y]='Q'; dfs(p+1,cnt+1); str[x][y]='.'; } } } int main() { while(scanf("%d",&n)&&n!=0) { ans=0; for(int i=0;i<n;i++) { scanf("%s",str[i]); } dfs(0,0); printf("%d\n",ans); } return 0; }


测评信息: