社区讨论

72pts玄关求条

P1004[NOIP 2000 提高组] 方格取数参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mj9zhzym
此快照首次捕获于
2025/12/17 20:24
3 个月前
此快照最后确认于
2025/12/17 20:25
3 个月前
查看原帖
CPP
#include <bits/stdc++.h>
#define r(a,b,c) for(int a=b;a<=c;a++)
#define R(a,b,c) for(int a=b;a>=c;a--)
using namespace std;
int n,a[10][10],dp[10][10][10][10]; 
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	cin>>n;
	int u,v,w;
	while(cin>>u>>v>>w){
		if(u==0&&v==0&&w==0) break;
		a[u][v]=w;
	}
	r(i,1,n){
		r(j,1,n){
			r(k,1,n){
				int l=i+j-k;
				dp[i][j][k][l]=max({dp[i][j-1][k][l-1],dp[i][j-1][k-1][l], \
				                    dp[i-1][j][k][l-1],dp[i-1][j][k][l-1]})\
								+a[i][j]+a[k][l];
				if(i==k&&j==l) dp[i][j][k][l]-=a[i][j];
			}
		}
	}
	cout<<dp[n][n][n][n];
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...