求调
查看原帖
求调
1112643
luogu140658945楼主2024/11/25 18:47
#include<bits/stdc++.h>
using namespace std;
int n, m, a[21], h, k,s=0;
vector<int>v;
void nb(int x) {
	if (s >= k) {
		return;
	}
	if (x > n) {
		k =min(k, s);
		return;
	}
	for (int i = 0; i < v.size();i++) {
		if (v[i] + a[x] <= m) {
			v[i] += a[x];
			nb(x + 1);
			v[i] -= a[x];
		}
	}
	v.push_back(a[x]);
	s++;
	nb(x + 1);
}
int main() {
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	k = n;
	nb(1);
	cout << k;
	return 0;
}
2024/11/25 18:47
加载中...