过完样例说丰年,听取WA声一片。
查看原帖
过完样例说丰年,听取WA声一片。
1271341
chu_yh楼主2024/7/24 21:23

蒟蒻已蒙


#include<iostream>
#include<cstring>
#include<iomanip>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<vector>
#include<bits/stdc++.h>
using namespace std;
int n,m,s[302],l[302],r[302],f[302][302],la[302];

int dp(int x,int y){
	if(f[x][y]>=0) return f[x][y];
	if(x==0) return 0;
	f[x][y]=dp(r[x],y);
	for(int i=1;i<=y;i++)
		f[x][y]=max(f[x][y],dp(l[x],i)+dp(r[x],y-1-i)+s[x]);
	return f[x][y];
}

int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		int k;
		scanf("%d%d",&k,&s[i]);
		if(la[k]==0) l[k]=i;
		else r[la[k]]=i;
		la[k]=i;
	}
	memset(f,-1,sizeof(f));
	printf("%d",dp(l[0],m));
	return 0;
}
2024/7/24 21:23
加载中...