防衛飛彈 最長下降子串行

2021-07-11 05:07:23 字數 773 閱讀 1793

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

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

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

多個測例。

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

n=0表示輸入結束。

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

輸入樣例5

5 6 100 6 61 0

輸出樣例

2

#include #include #include using namespace std;

int main()

num[i] = maxj+1; //從i號飛彈開始攔截

maxnum = maxnum > num[i] ? maxnum : num[i];

}printf("%d\n", maxnum);

}}

攔截飛彈 最長上公升 下降子串行

題意,長度為n的序列,a1,a2,ai,an,求最長嚴格上公升子串行長度,與最長下降非嚴格自序列長度.解法 首先不得不吐嘈下題目的讀入,噁心指數上達5顆星.對於一套攔截系統最多能攔截多少飛彈,求個非嚴格下降子串行就可以了.就不廢話了.主要還是求最少攔截數量.有乙個結論,最少攔截系統數量為 嚴格上公升...

nyoj79攔截飛彈 最長下降子串行

時間限制 3000 ms 記憶體限制 65535 kb 難度 3描述 某國為了防禦敵國的飛彈襲擊,發展中一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於等於前一發的高度。某天,雷達捕捉到敵國飛彈來襲。由於該系統還在試用階段,所以只用...

最長不下降子串行

a1 t0 an a an 1 2 b an c d n 1 求該序列最長不下降子串行長度 n不是很大顯然可以暴力。n很大呢?那就不斷減迴圈節長度直至減到乙個閾值內,再暴力。正確性顯然,只要閾值不要設太小。include include include define fo i,a,b for i a...