nyoj 79 攔截飛彈 (動態規劃)

2022-05-07 21:09:07 字數 1323 閱讀 5615

記憶體限制:64mb

時間限制:3000ms

特判: no

通過數:9

提交數:11

難度:3

某國為了防禦敵國的飛彈襲擊,發展中一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於等於前一發的高度。某天,雷達捕捉到敵國飛彈來襲。由於該系統還在試用階段,所以只用一套系統,因此有可能不能攔截所有的飛彈。

第一行輸入測試資料組數n(1<=n<=10)

接下來一行輸入這組測試資料共有多少個飛彈m(1<=m<=20)

接下來行輸入飛彈依次飛來的高度,所有高度值均是大於0的正整數。

輸出最多能攔截的飛彈數目

複製

2

8389 207 155 300 299 170 158 65

388 34 65

6

2分析:

1、與最長串類似的問題;

2、通過動態規劃找出找出前面的最長組合;

3、依次往後考慮,得到的就是最優解(全域性最長);

4、狀態方程:dp[i] = max(dp[i], dp[j] + 1);

方法一:

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 

1011

using

namespace

std;

12const

int maxn = 25;13

14int

main()

1535}36

}37 printf("

%d\n

", cnt + 1

);38}39

return0;

40 }

方法二:

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 

1011

using

namespace

std;

12const

int maxn = 25;13

14int

main()

1531 printf("

%d\n

", cnt);32}

33return0;

34 }

NYOJ 79 攔截飛彈 動態規劃

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

NYOJ 79 攔截飛彈

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

nyoj79攔截飛彈

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