1 条题解

  • 0
    @ 2025-10-8 16:58:01
    #include<bits/stdc++.h>
    using namespace std;
    int c[110],r[110];
    int f[110000];
    int main()
    {
        int n,m;scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)scanf("%d%d",&c[i],&r[i]),r[i]-=c[i];
        memset(f,0,sizeof(f)); 
        for(int i=1;i<=n;i++)if(r[i]>0)
        {
           for(int j=c[i];j<=m;j++)
           {
                f[j]=max(f[j],f[j-c[i]]+r[i]);
           }
        }
    	int p=m;while(p>0&&f[p]==f[p-1])p--;
        printf("%d\n",f[p]+m-p);
        return 0;
    }
    
    • 1

    *【背包:价值填满型完全背包】山洞宝石3[USACO10OCT] Making Money G

    信息

    ID
    1586
    时间
    500ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    171
    已通过
    36
    上传者