2 条题解
-
1
/** * author: 小飞侠cy * created: 2025.11.28 20:17:24 */ #include <iostream> #include <algorithm> using namespace std; const int N = 100010; int a[N]; int main() { int n, m; cin >> n >> m; for(int i = 0; i < n; ++ i) cin >> a[i]; sort(a, a + n);//从小到大贪心选就ok了 int sum = 0; int ans = 0; for(int i = 0; i < n; ++ i) { if(sum + a[i] <= m) { sum += a[i]; ans ++; } else break; } cout << ans << '\n'; return 0; } -
0
#include <bits/stdc++.h> #define int long long // 仅在需要大整数时使用,memset 数组为 0x3f 时去掉 #define INF 0x3f3f3f3f #define PII pair<int, int> #define ULL unsigned long long #define PIII tuple<int, int, int> #define all(v) v.begin(), v.end() #define debug(a) cout << #a << " = " << a << endl; using namespace std; constexpr int N = 1 * 1e6 + 10, M = 5 * 1e3 + 10; void solve() { int n, m; cin >> n >> m; auto arr = vector<int>(n); auto dp = vector<int>(m); for (auto &x : arr) cin >> x; for (int i = 0; i < n; i ++) { for (int j = m; j >= arr[i]; j --) { dp[j] = max(dp[j], dp[j - arr[i]] + 1); } } int ans = 0; for (auto x : dp) ans = max(ans, x); cout << ans; } signed main() { ios::sync_with_stdio(0); cin.tie(nullptr), cout.tie(nullptr); int _ = 1; // cin >> _; while (_--) { solve(); } return 0; } /** * author: Nijika_jia * description: C++17 Algorithm Template for Competitive Programming */
- 1
信息
- ID
- 5630
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 114
- 已通过
- 32
- 上传者