80分 求调
查看原帖
80分 求调
1305371
zyc12345678楼主2025/7/23 10:42

80分 求调

Code:

#include <bits/stdc++.h>
using namespace std;
const int N=11;
int a[N][N],dp[2*N][N][N];	
int main(){
	int n,x,y,t;cin>>n;
	while(cin>>x>>y>>t,x!=0&&y!=0&&t!=0) a[x][y]=t;
	for(int s=2;s<=2*n;s++){
		for(int i1=1;i1<=n;i1++){
			for(int i2=1;i2<=n;i2++){
				int j1=s-i1,j2=s-i2;t=a[i1][j1];
				if(i1!=i2) t+=a[i2][j2];
				int &k=dp[s][i1][i2];
				k=max(k,dp[s-1][i1][i2]+t);
				k=max(k,dp[s-1][i1][i2-1]+t);
				k=max(k,dp[s-1][i1-1][i2-1]+t);
				k=max(k,dp[s-1][i1-1][i2]+t);
			}
		}
	}
	cout<<dp[2*n][n][n];
	return 0;
}

WA一个点
输入:
8
1 1 13
1 3 7
1 8 14
2 2 1
2 4 2
4 3 5
5 5 4
6 2 6
7 8 16
0 0 0

正确输出:60
我的:66

2025/7/23 10:42
加载中...