向经典致敬
2023-01-13 16:58:20
发布于:山东
86阅读
0回复
0点赞
金明好闪,拜谢金明
#include<bits/stdc++.h>
using namespace std;
int m,n;
int v[10000],p[10000],q[10000],a[10000][3];
int f[10000];
int main()
{
cin>>m>>n;
m/=10;
for(int i=1;i<=n;i++)
{
cin>>v[i]>>p[i]>>q[i];
v[i]/=10;
if(q[i]!=0)
{
a[q[i]][0]++;
a[q[i]][a[q[i]][0]]=i;
}
}
for(int i=1;i<=n;i++)
{
if(q[i]!=0)
{
continue;
}
for(int j=m;j>=0;j--)
{
int v0=v[i],w0=v[i]*p[i];
if(j>=v0)
{
f[j]=max(f[j],f[j-v0]+w0);
}
if(a[i][0]>=1)
{
v0=v[i]+v[a[i][1]];
w0=v[i]*p[i]+v[a[i][1]]*p[a[i][1]];
if(j>=v0)
{
f[j]=max(f[j],f[j-v0]+w0);
}
}
if(a[i][0]>=1)
{
v0=v[i]+v[a[i][2]];
w0=v[i]*p[i]+v[a[i][2]]*p[a[i][2]];
if(j>=v0)
{
f[j]=max(f[j],f[j-v0]+w0);
}
}
if(a[i][0]>=2)
{
v0=v[i]+v[a[i][1]]+v[a[i][2]];
w0=v[i]*p[i]+v[a[i][1]]*p[a[i][1]]+v[a[i][2]]*p[a[i][2]];
if(j>=v0)
{
f[j]=max(f[j],f[j-v0]+w0);
}
}
}
}
cout<<f[m]*10;
return 0;
}
这里空空如也
有帮助,赞一个