hdu 1257(贪心)

来源:互联网 发布:模特杨柳的淘宝店 编辑:程序博客网 时间:2024/06/05 19:14

     这道题似乎用dp最好,不过我用的是贪心,对每个导弹,选择比它高度高且最接近它的拦截系统拦截,拦截后更新系统的能拦截的高度。

   代码如下:

#include<cstdio>#include<cstring>#include<iostream>#include<cstdlib>#include<cmath>#include<algorithm>#include<queue>#include<stack>#include<set>#include<map>using namespace std;typedef long long ll;const int M=1010;const int N=1000010;const int INF=1e9;const double PI=acos(-1.0);const double Exp=exp(1.0);int n,a[N],q[N];int main(){    int i,j;    while(~scanf("%d",&n))    {        int k=0,b;        scanf("%d",&b);        q[k++]=b;        for (i=1;i<n;i++){            scanf("%d",&b);            int v=-1;            for (j=0;j<k;j++){                if (q[j]>b){                    if (v==-1) v=j;                    else if (q[j]<q[v]) v=j;                }            }            if (v==-1) { q[k++]=b; }            else q[v]=b;        }        printf("%d\n",k);    }}


0 0