2 条题解

  • 0
    @ 2025-2-23 14:33:30
    #include<iostream>
    using namespace std;
    struct node{
        int a;
        int b;
    }c[101];
    bool cmp(node x,node y){
        return x.a < y.a;
    }
    int main(){
        int m,n,s=0;
        int i,j;
        int sum = 0;
        cin>>m>>n;
        for(i = 0; i < n; i++){
            cin>>c[i].a>>c[i].b;
        }
        sort(c,c+n,cmp);
        for(i = 0; i < n; i++){
            for(j = 1; j <= c[i].b; j++){
                sum += c[i].a;
                if(sum>=m){
                	break;
            	}
            	s++;
            }      
        }    
        cout<<s;
        return 0;
    }
    
    • 0
      @ 2025-2-22 9:55:03
      ```#include <bits/stdc++.h> 
      using namespace std;
      int main() {
          int m, n;
          cin >> m >> n;
          vector<int> dp(m + 1, -1);  
          dp[0] = 0;  
          
          for (int i = 0; i < n; ++i) {
              int a, b;
              cin >> a >> b;  
              for (int w = m; w >= 0; --w) {  
                  if (dp[w] != -1) {
      
                      for (int k = 1; k <= b; ++k) {
                          int new_w = w + a * k;
                          if (new_w > m) break;  
                          if (dp[new_w] < dp[w] + k) {
                              dp[new_w] = dp[w] + k;
                          }
                      }
                  }
              }
          }
          
          int max=0;
          for (int w=0;w<=m;++w) {  
              if (dp[w]>max) {
                  max = dp[w];
              }
          }
          
          cout<<max<<endl;  
          
          return 0;
      }
      • 1

      信息

      ID
      373
      时间
      1000ms
      内存
      64MiB
      难度
      9
      标签
      递交数
      13
      已通过
      5
      上传者