1 条题解

  • 0
    @ 2025-9-10 0:11:59

    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

    信息

    ID
    3220
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者