1. 程式人生 > >hdoj 1257最少攔截系統

hdoj 1257最少攔截系統

ont pop popu main 不能 post tdi div -s



/*最少攔截系統
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 25347 Accepted Submission(s): 9959
Problem Description
某國為了防禦敵國的導彈突擊,發展出一種導彈攔截系統.可是這樣的導彈攔截系統有一個缺陷:
盡管它的第一發炮彈可以到達隨意的高度,可是以後每一發炮彈都不能超過前一發的高度.
某天,雷達捕捉到敵國的導彈來襲.因為該系統還在試用階段,所以僅僅有一套系統,
因此有可能不能攔截全部的導彈.
怎麽辦呢?多搞幾套系統唄!你說說倒蠻easy,成本呢?成本是個大問題啊.
所以俺就到這裏來求救了,請幫助計算一下最少須要多少套攔截系統.
Input
輸入若幹組數據.每組數據包含:導彈總個數(正整數),導彈依此飛來的高度
(雷達給出的高度數據是不大於30000的正整數,用空格分隔)

Output

相應每組數據輸出攔截全部導彈最少要配備多少套這樣的導彈攔截系統。


Sample Input
8 389 207 155 300 299 170 158 65
Sample Output
2*/

<span style="font-size:18px;">#include<stdio.h>
#include<string.h>
int a[1000008],b[1000008];
int main()
{
 int n,i,k,j;
 while(scanf("%d",&n)==1)
 {
  k=0;
  scanf("%d",&a[0]);
  b[k]=a[0];
  for(i=1;i<n;i++)
  {
   scanf("%d",&a[i]);
   for(j=0;j<=k;j++)
    if(b[j]>a[i])
    {
     b[j]=a[i];
     break;
    }
   if(j>k)
   {
    b[++k]=a[i];
   }
  }
  printf("%d\n",k+1);
 }
 return 0;
}
 



 
</span>


hdoj 1257最少攔截系統