完整代码
```cpp
#include<bits/stdc++.h>
using namespace std;
int f[11][11][11][11];
int m[12][12];
int n;
int a,b;
int c;
int main()
{
scanf("%d",&n);
while(cin>>a>>b>>c && a)
{
m[a][b]=c;
}
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]=max(max(f[i-1][j][k][l-1],f[i-1][j][k-1][l]),
max(f[i][j-1][k-1][l],f[i][j-1][k][l-1]))+m[i][j]+m[k][l];
if(i==k && j==l)f[i][i][j][k]-=m[i][j];
}
}
}
}
cout<<f[n][n][n][n];
return 0;
}
```
但是好像和其他关系不大
by acahv @ 2021-08-24 09:55:00
@[acahv](/user/557887)
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,x,y,val,ans=0,maxn,f[12][12][12][12],a[12][12];
int main(){
cin>>n;
while(cin>>x>>y>>val){
if(x==0&&y==0&&val==0)
break;
a[x][y]=val;
}
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]=max(f[i-1][j][k-1][l],max(f[i][j-1][k-1][l],max(f[i-1][j][k][l-1],f[i][j-1][k][l-1])))+a[i][j]+a[k][l];
if(i==k&&j==l)
f[i][j][k][l]-=a[i][j];
}
}
}
}
cout<<f[n][n][n][n];
return 0;
}
```
by 一SakuRa @ 2021-08-24 09:56:31
@[一SakuRa](/user/419519) 我看了好久没有看出什么差别,不知道是哪里细节出错了,难受
by acahv @ 2021-08-24 09:59:17
@[一SakuRa](/user/419519) 啊我懂了!
by acahv @ 2021-08-24 10:00:04
@[acahv](/user/557887)
我也挺迷的,没看出那不一样
by 一SakuRa @ 2021-08-24 10:00:05
@[acahv](/user/557887)
找到了
by 一SakuRa @ 2021-08-24 10:01:04
@[acahv](/user/557887)
```cpp
if(i==k && j==l)f[i][i][j][k]-=m[i][j];
```
by 一SakuRa @ 2021-08-24 10:01:26
@[一SakuRa](/user/419519) 啊啊啊啊啊啊这也太傻了
谢谢谢谢!!
by acahv @ 2021-08-24 10:02:20
@[acahv](/user/557887) 应该是 `f[i][j][k][l] -= m[i][j]` 吧。
by hank0402 @ 2021-08-24 10:02:23
@[acahv](/user/557887)
```cpp
if(i==k && j==l)f[i][i][j][k]-=m[i][j];
```
改成
```
if(i==k && j==l)f[i][j][k][l]-=m[i][j];
```
by 一SakuRa @ 2021-08-24 10:02:43