各位dalao先别急着喷
看代码
#include <bits/stdc++.h>
using namespace std;
int m,n,index,dp[200000];
struct object
{
int q,p,v,link1,link2;
bool now;
}a[32000];
int main()
{
cin>>m>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].p>>a[i].v>>a[i].q;
int z=a[i].q;
if(a[i].q!=0)
{
if(a[z].now==false)
{
a[z].link1=i;
a[z].now=true;
}
else
{
a[z].link2=i;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=m;j>=a[i].p;j--)
{
if(a[i].q==0)
{
dp[j]=max(dp[j],dp[j-a[i].p]+a[i].p*a[i].v);
int l1=a[i].link1,l2=a[i].link2;
if(j>=a[i].p+a[l1].p) dp[j]=max(dp[j],dp[j-a[i].p-a[l1].p]+a[i].p*a[i].v+a[l1].p*a[l1].v);
if(j>=a[i].p+a[l2].p) dp[j]=max(dp[j],dp[j-a[i].p-a[l2].p]+a[i].p*a[i].v+a[l2].p*a[l2].v);
if(j>=a[i].p+a[l1].p+a[l2].p) dp[j]=dp[j]=max(dp[j],dp[j-a[i].p-a[l1].p-a[l2].p]+a[i].p*a[i].v+a[l1].p*a[l1].v+a[l2].p*a[l2].v);
}
}
}
cout<<dp[m];
return 0;
}
这个代码显示CE...删掉第三行的无意义变量index之后就AC了...
有没有dalao知道咋回事?