1 条题解

  • 0
    @ 2026-1-6 15:11:47
    #include<bits/stdc++.h>
    using namespace std; 
    long long n,m,v[11000],w[11000],f[11000],V;
    int main()
    {
    	cin>>V>>n>>m;
    	for(int i=1;i<=n;i++) cin>>v[i]>>w[i];
    	for(int i=1;i<=V;i++){
    		f[i]=INT_MAX;
    	}
    	for(int i=1;i<=n;i++)
    		for(int j=V;j>=v[i];j--)
    			if(f[i]-v[i]!=0||j==v[i])
    		f[j]=min(f[j],f[j-v[i]]+w[i]);
    	if(f[V]>m){
    		cout<<"Impossible";
    	}else
    	{
    		cout<<m-f[V];
    	}
    }
    
    • 1

    信息

    ID
    339
    时间
    1000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    8
    已通过
    0
    上传者