1 条题解

  • -1
    @ 2025-4-8 13:36:14
    #include<bits/stdc++.h>
    using namespace std;
    int main() {
        int n,w;
        cin>>n>>w;
        int c[2005],v[2005];
        for(int i=1;i<=n;i++) 
            cin>>c[i];
        for(int i=1;i<=n;i++)
            cin>>v[i];
        int* dp=new int[w+1];
        memset(dp,0,sizeof(int)*(w+1));
        for(int i=1;i<=n;i++)
            for(int j=w;j>=v[i];j--) 
                if(dp[j-v[i]]+c[i]>dp[j]) 
                    dp[j]=dp[j-v[i]]+c[i];
        cout<<dp[w];
        return 0;
    }
    
  • 1

信息

ID
516
时间
5000ms
内存
256MiB
难度
10
标签
递交数
4
已通过
3
上传者