題目入口:i - 最少攔截系統
解題思路
第一遍遍歷前推wa了(很多人想知道為什麼會錯)
找到題目裡的坑就豁然開朗了
雖然是飛彈依次飛來
但是後面發射的飛彈可以選擇前面已用過的攔截系統進行攔截
這裡給乙個拆分例子理解一下
示例:
8 389 207 155 300 299 170 158 65
389 207 155 65
300 299 170 158
這個樣例顯然不明顯
我們再來一組樣例
6 300 288 290 289 187 266
300 290 289 187
288 266
所以答案是2
按照遍歷前推則是3
是不是顯然了
我們說正確的思路
有這麼三個飛彈288 266 299
這種情況下我們肯定需要兩個攔截系統來搞它們
第乙個解決288
第二個解決299
因此可以想象
所有飛彈打出來有幾個不連續遞增的飛彈
就用多少個攔截系統搞掉它們
所以最終問題化為求最大不連續遞增子列長度
好了 到了這裡dp就可以出來了
【模版】陣列最大不連續遞增子串行
#include
#include
#include
#define maxsize 30010
//注意依題更改陣列大小
using namespace std;
int dp[maxsize]
;//存放當前最大不連續遞增子列長度
intmcao
(int a,
int n)
intmain()
return0;
}
I 最少攔截系統 HOJ LCS
i 最少攔截系統 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能...
最少攔截系統
description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈.怎麼辦呢...
最少攔截系統
題目 description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈.怎...