怎么才能吸引大佬进来调题
查看原帖
怎么才能吸引大佬进来调题
632141
chenhaihang楼主2024/8/25 16:24

佬别急着走给关

#include<bits/stdc++.h> 
using namespace std;
long long v[32001],s[32001],zf,dp[32001],n,m,q[32001][3],f[32001][3],zx[3201][5],z,l;
int main()
{
	cin>>n>>m;
	int k=m;
	for(int i=1;i<=m;i++)
	{
		cin>>z>>l>>zf;
		if(!zf){
			v[i]=z*l;
			s[i]=z;
		}
		else{
			zx[zf][0]++;
			q[i][zx[i][0]]=z*l;
			f[i][zx[i][0]]=z;
		}
	}
	for(int i=1;i<=k;i++)
	{
		for(int j=n;j>=s[i];j--)
		{
			dp[j]=max(dp[j],dp[j-s[i]]+v[i]);
			if(j>=s[i]+f[i][1])
				dp[j]=max(dp[j],dp[j-s[i]-f[i][1]]+v[i]+q[i][1]);
			if(j>=s[i]+f[i][2])
				dp[j]=max(dp[j],dp[j-s[i]-f[i][2]]+v[i]+q[i][2]);
			if(j>=s[i]+f[i][1]+f[i][2])
				dp[j]=max(dp[j],dp[j-s[i]-f[i][1]-f[i][2]]+v[i]+q[i][1]+q[i][2]);	
		}
	}
	cout<<dp[n];
	return 0;
}
2024/8/25 16:24
加载中...