I - 最少拦截系统

参考:ACM HDU 1257 最少拦截系统

思路:这个题其实是个贪心,每一次只需要找到一个离当前导弹高度最近的一个拦截系统进行拦截,即是最优解。

代码:

// Created by CAD on 2019/10/26.
#include <bits/stdc++.h>
using namespace std;

vector<int> missile;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    while(cin>>n)
    {
        missile.clear();
        while(n--)
        {
            int h;  cin>>h;
            bool flag=false;
            sort(missile.begin(),missile.end());
            for(int i=0;i<missile.size()&&!flag;++i)
            {
                if(h<missile[i])
                    missile[i]=h,flag=true;
            }
            if(!flag)   missile.push_back(h);
        }
        cout<<missile.size()<<endl;
    }
    return 0;
}