社区讨论

5pts求条

P5851[USACO19DEC] Greedy Pie Eaters P参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@mcddygjg
此快照首次捕获于
2025/06/26 20:55
8 个月前
此快照最后确认于
2025/11/04 06:57
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
int n,m;
int w[90005],l[90005],r[90005];
int dp[305][305],s[305][305][305];
int main(){
	cin>>n>>m;
	for (int i=1;i<=m;i++){
		cin>>w[i]>>l[i]>>r[i];
		for (int k=l[i];k<=r[i];k++){
			s[l[i]][r[i]][k]=w[i];
		}
	}
	
	for (int k=1;k<=n;k++){
		for (int ls=1;ls+k-1<=n;ls++){
			int rs=ls+k-1;
			for (int d=ls;d<=rs;d++){
				s[ls][rs][d]=max(s[ls][rs][d],max(s[ls+1][rs][d],s[ls][rs-1][d]));
			}
		}
	}
	
	for (int k=1;k<=n;k++){
		for (int ls=1;ls+k-1<=n;ls++){
			int rs=ls+k-1;
			for (int d=ls;d<rs;d++){
				dp[ls][rs]=max(dp[ls][rs],dp[ls][d]+dp[d+1][rs]);
			}
			for (int d=ls;d<=rs;d++){
				dp[ls][rs]=max(dp[ls][rs],dp[ls][d-1]+dp[d+1][rs]+s[ls][rs][k]);
			}
		}
	}
	cout<<dp[1][n]<<"\n";
	return 0;
} 

回复

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

正在加载回复...