#include <stdio.h>
int a[30010];
int main() {
int n;
while (scanf("%d", &n) != EOF) {
int i, min = 0;
scanf("%d", &n);
for (i = 0; i < n; i++) {
int high;
scanf("%d", &high);
if (i == 0) {
a[i] = high;
min++;
}
else {
int j, low = 50000, lown, flag = 0;
for (j = 0; j < min; j++) {
if (a[j] < low&&a[j] >= high) {
low = a[j];
lown = j;
flag = 1;
}
}
if (flag == 1) {
a[lown] = high;
flag = 0;
}
else {
a[min] = high;
min++;
}
}
}
printf("%d\n", min);
}
}
HDU 1257 最少拦截系统
最新推荐文章于 2019-09-05 17:15:28 发布
本文介绍了一个通过扫描输入数据并根据特定条件更新数组元素的算法。该算法首先初始化数组,并定义一个计数器用于跟踪已更新元素的数量。接着遍历输入数据,如果当前值小于已存在的数组元素且满足条件,则更新数组;否则,将当前值添加到数组中,并增加计数器。最终输出计数器的值,即为数组中保留的最小元素数量。
274

被折叠的 条评论
为什么被折叠?



