演算法練習 NOJ 1046 防衛飛彈

2021-06-30 16:26:07 字數 638 閱讀 7841

時限:1000ms 記憶體限制:10000k 總時限:3000ms

描述一種新型的防衛飛彈可截擊多個攻擊飛彈。它可以向前飛行,也可以用很快的速度向下飛行,可以毫無損傷地截擊進攻飛彈,但不可以向後或向上飛行。但有乙個缺點,儘管它發射時可以達到任意高度,但它只能截擊比它上次截擊飛彈時所處高度低或者高度相同的飛彈。現對這種新型防衛飛彈進行測試,在每一次測試中,發射一系列的測試飛彈(這些飛彈發射的間隔時間固定,飛行速度相同),該防衛飛彈所能獲得的資訊包括各進攻飛彈的高度,以及它們發射次序。現要求編一程式,求在每次測試中,該防衛飛彈最多能截擊的進攻飛彈數量,乙個飛彈能被截擊應滿足下列兩個條件之一:

a)它是該次測試中第乙個被防衛飛彈截擊的飛彈;

b)它是在上一次被截擊飛彈的發射後發射,且高度不大於上一次被截擊飛彈的高度的飛彈。

輸入多個測例。

每個測例第一行是乙個整數n(n不超過100),第二行n個整數表示飛彈的高度(數字的順序即發射的順序)。

n=0表示輸入結束。

輸出每個測例在單獨的一行內輸出截擊飛彈的最大數目。

輸入樣例

5 5 6 100 6 61

0

#include

#include

int main()

}

演算法練習 NOJ 1043 跳馬

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述 在西洋棋中,馬的走法與中車象棋類似,即俗話說的 馬走日 下圖所示即西洋棋中馬 k 在一步能到達的格仔 其中黑色的格仔是能到達的位置 現有一200 200大小的西洋棋棋盤,棋盤中僅有乙個馬,給定馬的當前位置 s 和目標位置 t ...

演算法練習 NOJ 1003 快速排序

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述給定乙個數列,用快速排序演算法把它排成公升序。輸入第一行是乙個整數n,表示要排序的數的個數 下面一行是用空格隔開的n個整數。輸出輸出排序後的數列,每個數字佔一行。輸入樣例 5 3 2 1 4 5 輸出樣例 1 2 3 4 5 快...

演算法練習 NOJ 1005 裝載問題

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述有兩艘船,載重量分別是c1 c2,n個貨櫃,重量是wi i 1 n 且所有貨櫃的總重量不超過c1 c2。確定是否有可能將所有貨櫃全部裝入兩艘船。輸入多個測例,每個測例的輸入佔兩行。第一行一次是c1 c2和n n 10 第二行n個...