标签:计蒜客 src end cto i++ div clu code namespace
AC代码:
#include<stdio.h> #include<vector> #include<algorithm> using namespace std; int a[10][10]; int vis[10]; vector<int> v; void search(int cur,int sum){ if(cur==8){ v.push_back(sum); } else for(int i=0;i<8;i++){ vis[cur]=i; int ok=1; for(int j=0;j<cur;j++){ if(vis[cur]==vis[j]||vis[cur]+cur==vis[j]+j||cur-vis[cur]==j-vis[j]){ ok=0; break; } } if(ok){ search(cur+1,sum+a[cur][vis[cur]]); } } } int main(){ for(int i=0;i<8;i++){ for(int j=0;j<8;j++){ scanf("%d",&a[i][j]); } } search(0,0); sort(v.begin(),v.end()); printf("%d",v[v.size()-1]); //printf("%d",v.size()); return 0; }
注意:既然是逐行放置的,则皇后肯定不会横向攻击,因此只需检查是否纵向和斜向攻 |
击即可。 条件“cur-C[cur] == j-C[j] || cur+C[cur] == j+C[j]”用来判断皇后(cur,C[cur])和 |
(j,C[j])是否在同一条对角线上。 |
标签:计蒜客 src end cto i++ div clu code namespace
原文地址:https://www.cnblogs.com/pythonbigdata/p/8748105.html