萌新刚学 OI,求助样例 3500 是个 smg
查看原帖
萌新刚学 OI,求助样例 3500 是个 smg
298549
SIXIANG32楼主2021/1/29 20:57
#include<iostream>
#include<vector>
#define f1 fj[p][1]
#define f2 fj[p][2]
using namespace std;
int fj[70][3],v[70],z[70],c[70],f[32010];
int main()
{
	int n,m;
	cin>>n>>m;
	for(int p=1,s;p<=m;p++)
	{
		cin>>v[p]>>z[p]>>s,z[p]*=v[p];
		if(s)fj[s][++c[s]]=p;
	}
	for(int p=1;p<=m;p++)
		for(int i=n;i>=0;i--)
		{
			if(i>=v[p])f[i]=max(f[i],f[i-v[p]]+z[p]);
			if(i>=v[p]+v[f1])f[i]=max(f[i],f[i-v[p]-v[f1]]+z[p]+z[f1]);
			if(i>=v[p]+v[f2])f[i]=max(f[i],f[i-v[p]-v[f2]]+z[p]+z[f2]);
			if(i>=v[p]+v[f1]+v[f2])f[i]=max(f[i],f[i-v[p]-v[f1]-v[f2]]+z[p]+z[f1]+z[f2]);
		}
	cout<<f[n]<<endl;
}

呜哇真的没看出来哪里错了,如果是我眼瞎请最下留情/kk

2021/1/29 20:57
加载中...