zoukankan      html  css  js  c++  java
  • HDU 1257 最少拦截系统

    这题还是有点意思的,有个数据可以试试:

    8 7 6 5 6 3 2 4 1。答案是2而非3。问题就在于:拦截系统用完并非消失,以后有可以用的时候还是可以用的。

    那么对于每个导弹,贪心地用被利用得已经高度最低的拦截系统去处理它,如果没有能处理的时候就增加个拦截系统。知道思路之后自己写就行了。

    #include <iostream>
    #include <bits/stdc++.h>
    using namespace std;
    
    #define ll long long
    #define mst(a,b) memset(a,b,sizeof(a))
    #define rep(i,a,b) for(ll i=(a);i<(b);++i)
    #define scf(n) scanf("%d", &(n));
    const int inf = 0x3f3f3f3f, maxN = 1e4 + 5;
    int N, M, T;
    int dd[maxN];
    int xt[maxN];
    
    int main() {
    #ifndef ONLINE_JUDGE
        freopen("data.in", "r", stdin);
    #endif
        while (~scanf("%d", &N) && N) {
            rep(i, 0, N) scf(dd[i]);
            mst(xt, -inf);
    
            int cnt = 0;
            rep(i, 0, N) {
                int minIdx = 0, minV = inf;
                int ok = 0;
                rep(j, 0, cnt) {
                    if (xt[j] >= dd[i] && xt[j] < minV) {
                        minV = xt[j];
                        minIdx = j;
                    }
                }
                if (minV != inf && minV >= dd[i])
                    ok = 1;
                if (!ok)
                    xt[cnt++] = dd[i];
                else
                    xt[minIdx] = dd[i];
            }
            printf("%d
    ", cnt);
        }
        return 0;
    }
  • 相关阅读:
    原创 计算机系学生大学四年应该这样过
    ff3f34fq34f
    指针 引用
    POJ3352Road Construction
    POJ3308Paratroopers
    北大ACM试题分类 实时更新我所有的解题报告链接
    POJ2516Minimum Cost
    【转】一位ACMer过来人的心得
    POJ2528Mayor's posters
    POJ2186Popular Cows
  • 原文地址:https://www.cnblogs.com/Rosebud/p/9158168.html
Copyright © 2011-2022 走看看