5 条题解
-
0
#include <bits/stdc++.h> using namespace std; const int N = 1e2 + 10; const int mod = 1e9 + 7; const int INF = 0x3f3f3f3f; const long long LLINF = 0x3f3f3f3f3f3f3f3fLL; int n, m, a[N], ans, sum[N]; void dfs(int u, int v){ if(v >= ans) return; if(u == n){ ans = v; return; } for(int i = 0 ; i < v ; i++){ if(sum[i] + a[u] <= m){ sum[i] += a[u]; dfs(u + 1, v); sum[i] -= a[u]; } } sum[v] = a[u]; dfs(u + 1, v + 1); sum[v] = 0; } int main(){ cin >> n >> m; ans = n; for(int i = 0 ; i < n ; i++){ cin >> a[i]; } sort(a, a + n, greater<int>()); dfs(0, 0); cout << ans << endl; return 0; }
信息
- ID
- 76
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 454
- 已通过
- 115
- 上传者