# 題目
AP325 Q-1-10. 最多得分的皇后
# 解題思路
目前沒東西...
# 程式碼
#include<bits/stdc++.h> | |
using namespace std; | |
#define N 14 | |
int q[N][N],n,ans=0,a[N]; | |
void Queen(int k){ | |
if(k==n){ | |
int buffer=0; | |
for(int i=0;i<n;i++){ | |
if(a[i]==-1) continue; | |
buffer+=q[i][a[i]]; | |
} | |
if(ans<buffer) ans=buffer; | |
}else{ | |
for(int i=0;i<n;i++){ | |
bool t=1; | |
for(int j=0;j<k;j++){ | |
if(a[j]==-1) continue; | |
if(i==a[j] || abs(a[j]-i)==(k-j)){ | |
t=0; | |
break; | |
} | |
} | |
if(t){ | |
a[k]=i; | |
Queen(k+1); | |
} | |
} | |
a[k]=-1; | |
Queen(k+1); | |
} | |
} | |
int main(){ | |
cin>>n; | |
for(int i=0;i<n;i++) | |
for(int j=0;j<n;j++) | |
cin>>q[i][j]; | |
Queen(0); | |
cout<<ans; | |
return 0; | |
} |