离谱代码求调
  • 板块CF864E Fire
  • 楼主z_z_b_
  • 当前回复9
  • 已保存回复11
  • 发布时间2024/3/8 14:38
  • 上次更新2024/3/8 15:30:27
查看原帖
离谱代码求调
956129
z_z_b_楼主2024/3/8 14:38
#include<bits/stdc++.h>
using namespace std;

int dp[200][3020],n,t[201],d[201],p[201],ans,x,y,P,cnt[201][3020],sum,A[201],tot;

int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d %d %d",&t[i],&d[i],&p[i]);
	for(int i=1;i<=n;i++)
	{
		for(int j=t[i];j<d[i];j++)
		{
			int k=0,o=0;
			for(int l=1;l<i;l++)
				if(dp[i-l][j-t[i]]>k) k=dp[i-l][j-t[i]],o=i-l;
			dp[i][j]=k+p[i],cnt[i][j]=o;
			if(dp[i][j]>ans) ans=dp[i][j],x=i,y=j;
		}
	}
	P=ans;
	while(P)
	{
		P-=p[x]; 
		A[++tot]=x;
		int X=cnt[x][y],Y=y-t[x];
		x=X,y=Y;
	}
	printf("%d\n%d\n",ans,tot);
	for(int i=tot;i>=1;i--) printf("%d ",A[i]);
}
2024/3/8 14:38
加载中...