第三题裸的背包问题。。。 #include <bits/stdc++.h> using namespace std; const int N = 55; const long long INF = 1e18; long long dp[2*N],v[N]; int w[N]; int main(){     int n;     scanf("%d",&n);     for(int i=0;i<n;i++)scanf("%lld",&v[i]);     for(int i=0;i<n;i++)scanf("%d",&w[i]);     dp[0] = 0;     for(int i=1;i<=100;i++)dp[i] = -INF;     for(int i=0;i<n;i++){         for(int j=100;j>=w[i];j--){             dp[j] = max(dp[j],dp[j-w[i]]+v[i]);         }         for(int j=0;j<=100;j++)if(dp[j]<v[i])dp[j] = -INF;     }     for(int i=1;i<=100;i++){         if(dp[i]>0){             printf("%d\n",i);             break;         }     }     return 0; }
点赞 评论

相关推荐

03-04 07:14
门头沟学院 C++
黑皮白袜臭脚体育生:老板:都给工作机会了还想要工资,哪来这么多好事
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务