求助!!
查看原帖
求助!!
219147
Spoilme楼主2021/5/21 20:17

我Subtask #2错啦,请大佬纠正!!

#include<iostream>
#include<cstdio>
using namespace std;
int n,m,C,i,j;
int f[10000001];
int a[10000001],b[10000001],c[10000001];
int v[10000001],w[10000001];
int main(void)
{
	int cnt=0;
	scanf("%d%d%d",&n,&m,&C);
	for(i=1;i<=n;i++)
	{
		int z,y,x;
		scanf("%d%d%d",&x,&y,&z);
		for(int j=1;j<=z;j*=2)
		{
			v[++cnt]=j*x;
			w[cnt]=j*y;
			z-=j;
		}
		if(z)
		{
			v[++cnt]=z*x;
			w[cnt]=z*y;
		}
	}
	for(int x=1;x<=cnt;x++)
		for(int y=C;y>=v[x];y--)
			f[y]=max(f[y],f[y-v[x]]+w[x]);
	for(i=1;i<=m;i++)
	{
		scanf("%d%d%d",&a[i],&b[i],&c[i]);
		for(j=C;j>=0;j--)
			for(int k=0;k<=j;k++)
				f[j]=max(f[j],f[j-k]+a[i]*k*k+b[i]*k+c[i]);
	}
	//printf("%d %d\n",t,C);
	printf("%d\n",f[C]);
	return 0;
}
2021/5/21 20:17
加载中...