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

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int n,a[30005],ans,i,j,k,m;
     5     while(scanf("%d",&n)!=EOF)
     6     {
     7         ans=1;
     8         for(i=0;i<n;i++)
     9             a[i]=0;
    10         //预处理,开始时必定现有一套系统,所以ans=1,清空a[]上一轮的数据
    11         scanf("%d",&a[0]);
    12         //第一套系统的拦截高度当然是第一个导弹的高度啦
    13         for(i=1;i<n;i++)
    14         {
    15             //第二枚及之后的导弹在这里读入处理
    16             scanf("%d",&k);
    17             m=0;//这是一个标记变量,用来记录现在的这个导弹能否被现有系统拦截
    18             for(j=0;j<ans;j++)
    19             {
    20                 if(k<a[j])//导弹被现有系统拦截成功
    21                 {
    22                     a[j]=k;//系统高度下降
    23                     m=1;//标记显示为被拦截
    24                     break;//结束这个循环,因为下面的导弹系统不需要被用到
    25 
    26                 }
    27             }
    28             if(m==0)//导弹无法被现有系统拦截
    29             {
    30                 a[ans]=k;
    31                 ans++;
    32                 //添加一套新的系统;
    33             }
    34         }
    35         printf("%d
    ",ans);
    36     }
    37 }
    View Code
  • 相关阅读:
    添加右键菜单
    闭包和迭代器
    函数的进阶
    函数入门
    文件操作
    深浅拷贝
    小数据池和再谈编码
    字典
    list tuple
    int bool str
  • 原文地址:https://www.cnblogs.com/NWUACM/p/6394446.html
Copyright © 2011-2022 走看看