1 条题解

  • 0
    @ 2025-2-14 21:20:40

    C :

    #include<stdio.h>
    #define T -5000000000
    int main()
    {
        	int n,m,v,i,j;
            long long d[50000],c[2000],w[2000];
        	scanf("%d",&n);
        	while(n--)
        	{
            		scanf("%d%d",&m,&v);
            		for(i=0;i<m;i++)
            			scanf("%lld%lld",&c[i],&w[i]);
            			d[0]=0;
            			for(j=1;j<=v;j++)
                           d[j]=T;
            		for(i=0;i<m;i++)
            		{
            			for(j=c[i];j<=v;j++)
            				if(d[j]<d[j-c[i]]+w[i])
            				     d[j]=d[j-c[i]]+w[i];
            		}
               if(d[v]>0)	printf("%lld\n",d[v]);
               else   printf("NO\n");
        	}
    
        	return 0;
    }
    

    C++ :

    #include<stdio.h>
    #define T -5000000000
    int main()
    {
        	int c,m,n,i,j;
            long long f[50000],w[2000],v[2000];
        	scanf("%d",&c);
        	while(c--)
        	{
            		scanf("%d%d",&n,&m);
            		for(i=0;i<n;i++)
            			scanf("%lld%lld",&w[i],&v[i]);
            			f[0]=0;
            			for(j=1;j<=m;j++)
                           f[j]=T;
            		for(i=0;i<n;i++)
            		{
            			for(j=w[i];j<=m;j++)
            				if(f[j]<f[j-w[i]]+v[i])
            				     f[j]=f[j-w[i]]+v[i];
            		}
               if(f[m]>0)	printf("%lld\n",f[m]);
               else   printf("NO\n");
        	}
    
        	return 0;
    }
    
    • 1

    信息

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