救救孩子!

P1064 [NOIP2006 提高组] 金明的预算方案

菰冭 @ 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


|