Animals
分类:
greedy
1.题意概述
- 有某类动物,要在农场中待
n(1 ≤ n ≤ 100)
天,第
i
天,这类动物要吃的粮食为
ci ,现在初始粮草是 X(1≤X≤104) ,问你最多可以容纳几只动物(动物可以中途来,但是不能中途走)?
2.解题思路
- 我们先把第i天到最后1天所需的粮食求出来,再排序一下,然后贪心地选消耗小的就行。
3.AC代码
int a[101];
inline void solve() {
int n, X;
memset(a, 0, sizeof a);
scanf("%d%d", &n, &X);
rep(i, 0, n) {
scanf("%d", &a[i]);
a[i] *= (n - i);
}
sort(a, a + n);
if (a[0] > X) puts("0");
else {
int cnt = 0;
rep(i, 0, n) {
if (X - a[i] >= 0) {
cnt++;
X -= a[i];
} else break;
}
printf("%d\n", cnt);
}
}