3 条题解

  • 0
    @ 2022-8-3 19:44:54
    #include <iostream>
    using namespace std;
    int main()
    {
        int n,m,a[1001],b[1001];
        int f[1001];
        cin >> n >> m;
        for (int i = 1;i <= m;i ++)
            cin >> a[i] >> b[i];
        for (int i = 1;i <= m;i ++)
            for (int j = n;j >= a[i];j --)
                f[j] = max(f[j-a[i]]+b[i],f[j]);
        cout << f[n];
        return 0;
    }
    
    • 0
      @ 2022-7-6 22:44:55
      #include<cstdio>
      using namespace std;
      int dp[1005];
      int max(int x,int y){
          if(x>y) return x;
          return y;
      }
      int main(){
      	int t,m,a,b;
      	scanf("%d %d",&t,&m);
      	for(int i=1;i<=m;i++){
      		scanf("%d %d",&a,&b);
      		for(int j=t;j>=a;j--)
      			dp[j]=max(dp[j],dp[j-a]+b);
      	}
      	printf("%d",dp[t]);
      	return 0;
      }
      
      • 0
        @ 2022-6-12 10:29:01
        #include<bits/stdc++.h>
        using namespace std;
        int q,w,e,r,t,y,u,o,p,s,d,f,g,h,j,l,z,x,c,v,n,m,i,k,a[10001],aa[10000],b[999][99999];
        int main()
        {
            cin>>m>>n;
            for(i=1;i<=n;i++)
            {
            	cin>>a[i]>>aa[i];
        	}
        	for(i=0;i<=n;i++)
            {
            	for(j=0;j<=m;j++)
            	{
            		b[i][j]=-99999999;
        		}
        	}
        	b[0][0]=0;
        	for(i=1;i<=n;i++)
        	{
        		for(j=0;j<=m;j++)
        		{
        			b[i][j]=b[i-1][j];
        			if(j>=a[i])
        			b[i][j]=max(b[i][j],b[i-1][j-a[i]]+aa[i]);
        		}
        	}
        	for(i=0;i<=m;i++)
        	{
        		x=max(x,b[n][i]);
        	}
        	cout<<x;
            return 0;
        }
        
        • 1

        信息

        ID
        49
        时间
        1000ms
        内存
        125MiB
        难度
        2
        标签
        递交数
        78
        已通过
        46
        上传者