知识点:贪心
一个简单的贪心题,贪心的策略就是先装大的,能装的下小的那么我们就附带的装一个小的,从两头向中间靠拢,这样结果就会是最优,
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
bool cmp(int a, int b) {
return a > b;
}
int main() {
int T;
cin >> T;
while (T--) {
int n, c;
cin >> n >> c;
int a[N];
for (int i = 0; i < n; i++) cin >> a[i];
sort(a, a + n, cmp);
int p1 = 0, p2 = n - 1;
int ans = 0;
while (p1 <= p2) {
if (p1 == p2) { ans++; break; }
if (a[p1] + a[p2] > c) {
p1++;
} else {
p1++;
p2--;
}
ans++;
}
cout << ans << endl;
if (T) cout << endl;
}
return 0;
}