求调!!!回复必关!!!
查看原帖
求调!!!回复必关!!!
1795370
zhuyongxi楼主2025/8/29 10:52

求调!!!回复必关!!! 代码如下

#include<iostream>
using namespace std;
int main(){
    int n;
    int v;
    cin>>n>>v;
    int c[100005],l[100005];
    int cnt=0;
    for(int i=1;i<=n;i++){
        cin>>c[i]>>l[i];
        if (l[i]>v){
            l[i]=v;
        }
		cnt+=l[i];
    }
    int dp[5000005];
    for(int i=1;i<=v;i++){
        dp[i]=1e9;
    }
    for (int i=1;i<=n;i++){
		for (int j=cnt;j>=l[i];j--){
			dp[j]=min(dp[j],dp[j-l[i]]+c[i]);
		}
	}
    if(cnt<v){
        cout<<"no solution";
        return 0;
    }
    int minn=1e9;
    for(int i=cnt;i>=v;i--){
        minn=min(minn,dp[i]);
    }
    cout<<minn;
    return 0;
}

请大佬指教

2025/8/29 10:52
加载中...