求大佬更改 本蒟蒻不会改

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

Samuume @ 2023-06-17 20:25:02

#include<bits/stdc++.h>
using namespace std;
struct node{
    int w,val,w1,val1,w2,val2;
}a[605];
int main(){
    int n,m,dp[100][2005],maxn=0;
    cin>>n>>m;
    int num=0;
    for(int i=1;i<=m;i++)
    {
        int w,v,t;
        cin>>w>>v>>t;
        if(t==0)
        {
            num++;
            a[num].w=w;
            a[num].val=w*v;
        } else {
            if(a[num].w1==0)
            {
                a[num].w1=w;
                a[num].val1=w*v;
            } else {
                a[num].w2=w;
                a[num].val2=w*v;
            }
        }
    }
    for(int i=1;i<=num;i++)
    {
        for(int j=n;j>=1;j--)
        {
            if(j>=a[i].w)
            {
                dp[i][j]=max(dp[i][j],dp[i][j-a[i].w]+a[i].val);
            }
            if(j>=a[i].w+a[i].w1)
            {
                dp[i][j]=max(dp[i][j],dp[i][j-a[i].w-a[i].w1]+a[i].val+a[i].val1);
            }
            if(j>=a[i].w+a[i].w2)
            {
                dp[i][j]=max(dp[i][j],dp[i][j-a[i].w-a[i].w2]+a[i].val+a[i].val2);
            }
            if(j>=a[i].w+a[i].w1+a[i].w2)
            {
                dp[i][j]=max(dp[i][j],dp[i][j-a[i].w-a[i].w1-a[i].w2]+a[i].val+a[i].val1+a[i].val2);
            }
        }
    }
    cout<<dp[n][m];
    return 0;
}

by Samuume @ 2023-06-17 20:25:44

全RE


by onlyfiee @ 2023-06-17 20:56:31

@WSCU_DZ_XM 数组小了


by Samuume @ 2023-06-21 16:11:09

@onlyfiee 谢谢


|