vijos1143

来源:互联网 发布:普联软件 怎么样 编辑:程序博客网 时间:2024/05/16 17:50
#include<string.h>#include<cstdio>#include<cstdlib>#include<vector>#include<iostream>#include<algorithm>#define INF 1<<20using namespace std;int main(){int f[41][21][21][21],w[21][21];int n,m,i,j,k,s,x1,x2,x3,y1,y2,y3,d1,d2,d3,get;memset(f,0,sizeof(f));scanf("%d",&n);for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%d",&w[i][j]);f[1][1][1][1]=w[1][1];for(s=2;s<2*n;s++)for(x1=1;x1<=n;x1++)for(x2=1;x2<=n;x2++)for(x3=1;x3<=n;x3++){y1=s-x1+1;y2=s-x2+1;y3=s-x3+1;if(y1<1||y2<1||y3<1||y1>n||y2>n||y3>n)continue;get=w[x1][y1];if(x2!=x1)get+=w[x2][y2];if(x3!=x2&&x3!=x1)get+=w[x3][y3];for(d1=-1;d1<=0;d1++)for(d2=-1;d2<=0;d2++)for(d3=-1;d3<=0;d3++){i=x1+d1;j=x2+d2;k=x3+d3;if(i<1||k<1||j<1)continue;if(f[s-1][i][j][k]+get>f[s][x1][x2][x3])f[s][x1][x2][x3]=f[s-1][i][j][k]+get;}}printf("%d\n",f[n*2-1][n][n][n]);return 0;}

原创粉丝点击