1322:【例6.4】拦截导弹问题(Noip1999)

拦截导弹问题

易错点在于:

不考虑“之前”的导弹拦截系统。

每次“无奈”增加导弹拦截系统后,之前的导弹拦截系统也是有效的,也是能够发挥作用的。

 1 #include<iostream>
 2 using namespace std;
 3 const int N=1005;
 4 int main(){
 5     int t,r=0,k[N];
 6     while(cin>>t){
 7         //遍历已有的拦截系统,选择代价最小的进行拦截,实在拦截不了就再添加一个拦截系统
 8         int mi=30*N,s;
 9         for(int i=0;i<r;i++){
10             if(t<=k[i]){
11                 if(mi>k[i]-t){
12                     mi=k[i]-t;
13                     s=i;
14                 }
15             }
16         }
17         if(mi<30*N)k[s]=t;
18         else k[r++]=t;
19     }
20     cout<<r;
21     return 0;
22 }

 

posted @ 2021-08-10 15:18  Rekord  阅读(1358)  评论(0编辑  收藏  举报