1 solutions

  • 0
    @ 2025-11-5 17:28:02

    C++ :

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int f[110][110],a[110][110];//先钱后人品
    int n,rp[110],sj[110],q[110],m,r,o,t=0x3fffffff;
    int main()
    {
    	//freopen("gf.in","r",stdin);
    	//freopen("gf.out","w",stdout);
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%d%d%d",&q[i],&rp[i],&sj[i]);
    	}
    	scanf("%d%d",&m,&r);//m钱r人品
    	for(int u=1;u<=n;u++)
    		for(int i=m;i>=q[u];i--)
    	    	for(int y=r;y>=rp[u];y--)
    	    	{
    				if(f[i][y]==f[i][y-1]&&a[i][y]>a[i][y-1])
    				{
    					a[i][y]=a[i][y-1];
    				}
    				if(f[i][y]==f[i-1][y]&&a[i][y]>a[i-1][y])
    				{
    					a[i][y]=a[i-1][y];
    				}
    				if(f[i][y]<f[i][y-1])
    				{
    					f[i][y]=f[i][y-1];
    					a[i][y]=a[i][y-1];
    				}
    				if(f[i][y]<f[i-1][y])
    				{
    					f[i][y]=f[i-1][y];
    					a[i][y]=a[i-1][y];
    				}
    				if(f[i][y]==f[i-q[u]][y-rp[u]]+1&&a[i][y]>a[i-q[u]][y-rp[u]]+sj[u])
    				    a[i][y]=a[i-q[u]][y-rp[u]]+sj[u];
    				if(f[i][y]<f[i-q[u]][y-rp[u]]+1)
    				{
    				    f[i][y]=f[i-q[u]][y-rp[u]]+1;
    				    a[i][y]=a[i-q[u]][y-rp[u]]+sj[u];
    				}
    	    	}
    	 printf("%d",a[m][r]);
    	 //while(1);
    }
    
    
    • 1

    Information

    ID
    18459
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By