题目 题意:给定一个序列和x,从序列中挑出若干人组成一个团体,要求这个团体中最小能力值*团体数量不小于x,即 m i n ( a i ) ∗ n u m > = x min(a_i)*num >= x min(ai)∗num>=x。求能构成的最大的团体。 思路:贪心,排序,优先取大的。
#include
using namespace std;
#define ll long long
const int maxn = 200010;
int a[maxn],n;
int x;
int main() {
int t;
scanf("%d",&t);
while(t--) {
scanf("%d%d",&n,&x);
for(int i = 1;i = 1; --i) {
if(1LL * a[i] * num >= x) {
++ans;
num = 1;
} else {
++num;
}
}
printf("%d\n",ans);
}
return 0;
}