3 条题解

  • 1
    @ 2025-5-18 19:59:58
    #include<bits/stdc++.h>
    using namespace std;
    const int N = 1000 + 10;
    int m , w[N] , c[N] , dp[1010] , n;
    int main(){
    	cin >> m >> n;
    	for(int i = 1;i <= n;i++)
    	    cin >> w[i] >> c[i];
    	for(int i = 1;i <= n;i++)
            for(int j = w[i];j >= m;j++) 
            	dp[j] = max(dp[j] , dp[j - w[i]] + c[i]);
    	cout << dp[m];
    	return 0;
    }
    • 0
      @ 2023-9-5 22:01:38
      #include <iostream> 
      #include <stdio.h>
      using namespace std;
      const int N=1e6+10;
      int m,n;
      int w[N],c[N],dp[N];
      int main(){
      	cin>>m>>n;
      	for(int i=1;i<=n;i++){
      		cin>>w[i]>>c[i];
      	}
      	for(int i=1;i<=n;i++){
      		for(int j=w[i];j<=m;j++){
      			dp[j]=max(dp[j],dp[j-w[i]]+c[i]);
      		}
      	}
      	cout<<dp[m];
      	return 0;
      }
      
      • -1
        @ 2023-4-21 21:17:14
        #include <cstdio>
         
        #include <algorithm>
         
        #include <cstring>
         
        #include <iostream>
         
        using namespace std;
         
        int w[100100],c[100100];
         
        int f[100100];
         
        int n,v;
         
        int complete()
         
        {
         
            for(int i=1;i<=n;i++)
         
                for(int j=w[i];j<=v;j++)
         
                    f[j]=max(f[j],f[j-w[i]]+c[i]);
         
            return f[v];
         
        }
         
        int main()
         
        {
         
            cin>>v>>n;
         
            for(int i=1;i<=n;i++)
         
                cin>>w[i]>>c[i];
         
            cout<<complete()<<endl;
         
            return 0;
         
        }
        
        • 1

        信息

        ID
        1732
        时间
        1000ms
        内存
        256MiB
        难度
        5
        标签
        递交数
        302
        已通过
        112
        上传者