26 条题解

  • 0
    @ 2026-1-12 16:00:11
    #include <bits/stdc++.h>
    using namespace std;
    int v,m,n,maxn=-91789178,c[10100],f[10100],a[10100],b[10100];
    int main()
    {
    	cin>>v>>n>>m;
    	for(int i=1;i<=n;i++) cin>>c[i]>>f[i];
    	for(int i=1;i<=n;i++)
        {
    		for(int j=1;j<=m;j++)
            {
    			if(j<f[i]) 
    				b[j]=a[j];
    			else 
    				b[j]=max(a[j],c[i]+a[j-f[i]]);
    			if(b[j]>=v) 
    				maxn=max(maxn,m-j);
    		}
    		for(int j=1;j<=m;j++) a[j]=b[j];
    	}
    	if(maxn==-91789178) cout<<"Impossible";
    	else cout<<maxn;
    	return 0;
    }
    

    信息

    ID
    103
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    47
    已通过
    15
    上传者