4 条题解

  • 1
    @ 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;
    }
    
    • 0
      @ 2026-4-26 20:05:44
      #include <bits/stdc++.h>
      using namespace std;
      int n, m, w[1010], c[1010], dp[1010];
      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
        @ 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;
        }
        • -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
          难度
          6
          标签
          递交数
          447
          已通过
          151
          上传者