#include <bits/stdc++.h> using namespace std; int bag(vector<int> &a, int cap){     int n = a.size() - 1;     vector<vector<int> > DP(n+1, vector<int>(cap+1, 0));     for(int i=1; i<=n; ++i){         for(int j=1; j<=cap; ++j){             if(a[i-1] > j){                 DP[i][j] = DP[i-1][j];             }else{                 DP[i][j] = max(DP[i-1][j], DP[i-1][j-a[i-1]]+a[i-1]);             }         }     }     return DP[n][cap]; } int main(){     int n, t;     cin>>n>>t;     vector<int> a(n, 0);     for(int i=0; i<n; ++i){         cin>>a[i];     }     sort(a.begin(), a.end());     int max = a[n-1];     int res = bag(a, t-1);     cout<<max+res<<endl;     return 0; }
点赞 评论

相关推荐

08-27 12:02
已编辑
南京外国语学校 网络安全
再来一遍:实则劝各位不要all in华子,不要相信华为hr
点赞 评论 收藏
分享
牛油果甜奶昔:别的先不说,牛客还能内推护士?
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务