2 条题解
-
0
#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
```#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
- 上传者