1 条题解

  • 1

    #include<bits/stdc++.h>
    using namespace std;
    long long t,a[505],c[505],n,dp[250005];
    const long long N=1e18;
    int main(){
    cin>>n>>t;
    long long sum=0;
    for(int i=1;i<=n;i++){
    cin>>a[i]>>c[i];
    sum+=a[i];
    }

    for(int i=1;i<=sum;i++) dp[i]=N;
    dp[0]=0;
    for(int i=1;i<=n;i++){

    for(int j=sum;j>=0;j--){
    if(j>=a[i]) dp[j]=min(dp[j],dp[j-a[i]]+c[i]);
    else dp[j]=min(dp[j],c[i]);

    }

    }
    for(int i=sum;i>=1;i--)
    if(dp[i]<=t){
    cout<<i<<endl;
    return 0;

    }
    cout<<0;
    return 0;

    }

  • 1

信息

ID
3018
难度
9
分类
(无)
标签
递交数
361
已通过
17
通过率
5%
上传者