2 条题解

  • 0
    #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
      @ 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
      标签
      递交数
      113
      已通过
      47
      上传者