直接dfs过的
没技术含量。。
#include
#include
#include
using namespace std;
int a[21][21],q1[21],lon1,q2[21],lon2;
int ans=0;
int dfs(int t,int n)
{
if(t>n)
{
int sum=0;
for(int i=1;i<=lon1;i++)
for(int j=1;j<=lon2;j++)
sum+=a[q1[i]][q2[j]];
// for(int i=1;i<=lon1;i++) printf("%d ",q1[i]);printf("\n");
// for(int j=1;j<=lon2;j++) printf("%d ",q2[j]);printf("\n");
// printf("%d\n",sum);
if(sum>ans) ans=sum;
return(0);
}
q1[++lon1]=t;
dfs(t+1,n);
lon1--;
q2[++lon2]=t;
dfs(t+1,n);
lon2--;
return(0);
}
int main()
{
int n;scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%d",&a[i][j]);
q1[++lon1]=1;
dfs(2,n);
printf("%d",ans);
return 0;
}