```cpp
#include <iostream>
using namespace std;
const int N=13;
int f[N][N][N][N],a[N][N];
int n,m;
int cal(int a,int b,int c,int d) {
return ((((a>b)?a:b)>c?((a>b)?a:b):c)>d)?(((a>b)?a:b)>c?((a>b)?a:b):c):d;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int n;
cin>>n;
while(true) {
int u,v,w;
cin>>u>>v>>w;
if(u+v+w==0) break;
a[u][v]=w;
}
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
for (int k=1;k<=n;++k)
for (int x=j+1;x<=n;++x)
f[i][j][k][x]=cal(f[i][j-1][k-1][x],f[i-1][j][k][x-1],f[i][j-1][k][x-1],f[i-1][j][k-1][x])+a[i][j]+a[k][x];
cout << f[n][n-1][n-1][n] << endl;
return 0;
}
```
现在40pts了
by abensyl @ 2022-07-31 10:20:06
```cpp
#include <iostream>
using namespace std;
const int N=13;
int f[N][N][N][N],a[N][N];
int n,m;
int cal(int a,int b,int c,int d) {
return ((((a>b)?a:b)>c?((a>b)?a:b):c)>d)?(((a>b)?a:b)>c?((a>b)?a:b):c):d;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int n;
cin>>n;
while(true) {
int u,v,w;
cin>>u>>v>>w;
if(u+v+w==0) break;
a[u][v]=w;
}
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int k=1;k<=n;++k)
for(int l=1;l<=n;++l) {
f[i][j][k][l]=cal(f[i-1][j][k-1][l],f[i-1][j][k][l-1],f[i][j-1][k-1][l],f[i][j-1][k][l-1])+a[i][j]+a[k][l];
if(i==k&&l==j) f[i][j][k][l]-=a[i][j];
}
cout << f[n][n][n][n] << endl;
return 0;
}
```
# 现在过了!
by abensyl @ 2022-07-31 10:27:40
这题是用贪心算法吗?结果是多少啊
by AresXun @ 2022-08-15 20:06:43