1 条题解

  • 1
    @ 2020-08-29 11:19:41

    #include <iostream>
    using namespace std;
    int k[10000],m[100000];
    int f[10000];
    int main(){
    int v,n,c;
    cin>>v>>n>>c;
    for(int i=1;i<=n;i++){
    cin>>k[i]>>m[i];
    }
    for(int i=1;i<=n;i++){
    for(int j=v;j>=m[i];j--){
    f[j]=max(f[j],f[j-m[i]]+k[i]);
    }
    }
    for(int i=0;i<=c;i++){
    if(f[i]>=v) {
    cout<<c-i<<endl;
    return 0;
    }
    }
    cout<<"Impossible"<<endl;
    return 0;
    }

  • 1

信息

ID
1036
难度
9
分类
动态规划 | 背包 点击显示
标签
递交数
4
已通过
1
通过率
25%
上传者