菰冭 @ 2018-10-22 21:27:45
改了一个小时了ORZ
依然不对ORZ
我太菜了
#include<bits/stdc++.h>
using namespace std;
int f[32005],w[32005],v[32005],p[32005],wff[32005][5],vff[32005][5];
int n,m;
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>w[i]>>v[i]>>p[i];
if(!p[i])
v[i]*=w[i];
else
{
wff[p[i]][0]++;
wff[p[i]][wff[p[i]][0]]=w[i];
vff[p[i]][wff[p[i]][0]]=v[i]*w[i];
w[i]=0;
v[i]=0;
}
}
for(int i=1;i<=m;i++)
{
// if(w[i]!=0)
for(int j=n;w[i]!=0&&j>=w[i];j--)
{
// if(w[i]!=0)
{
if(j>=w[i])
f[j]=max(f[j-w[i]]+v[i],f[j]);
if(j>=w[i]+wff[i][1])
{
f[j]=max(f[j-w[i]-wff[i][j]]+vff[i][1]+v[i],f[j]);
}
if(j>=w[i]+wff[i][2])
{
f[j]=max(f[j-w[i]-wff[i][2]]+v[i]+vff[i][2],f[j]);
}
if(j>=w[i]+wff[i][1]+wff[i][2])
{
f[j]=max(f[j-w[i]-wff[i][1]-wff[i][2]]+v[i]+vff[i][1]+vff[i][2],f[j]);
}
}
}
}
cout<<f[n];
return 0;
}
by Victorique_De_Blois @ 2018-10-23 13:09:13
标题不要打得很周树人(逃
by 菰冭 @ 2018-10-23 16:38:30
改过来了了qwq
把1写成了j半天没看出来。。。
我还是太菜了qwq