XYNUOJ 1774 最少拦截系统

  1. :先把第一个拦截系统高度初始化为第一个飞来的导弹的高度,然后让下一个导弹与所有拦截系统比较过去,情况如下 
  2.           从第一个拦截系统开始比较,  
  3.           ①若第 i 个导弹高度低于第 j 个拦截系统的高度,则将第 j 个拦截系统高度更新为第 i 个导弹的高度; 
  4.           ②若第 i 个导弹高度比所有拦截系统的高度都高,则在加入一个拦截系统,该拦截系统高度就是第 i 个导弹的高度; 
  5. #include<stdio.h>
    int main()
    {
    int n,a[1000],i,b[1000],j;//b[1000]拦截系统
    while(scanf("%d",&n)!=EOF)
    {
    int t=0;
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    b[t]=a[0];
    for(i=1;i<n;i++)
    {
    for(j=0;j<=t;j++)
    {
    if(a[i]<=b[j])
    {
    b[j]=a[i];
    break;
    }
    }
    if(j>t)
    { //新增一个拦截系统
    t++;
    b[t]=a[i];
    }
    }
    printf("%d\n",t+1);
    }
    return 0;
    }//AC

posted on 2017-08-01 15:55  残夜半梦  阅读(170)  评论(0编辑  收藏  举报

导航