題目入口:i - 最少攔截系統
解題思路
第一遍遍歷前推wa了(很多人想知道為什麼會錯)
找到題目裡的坑就豁然開朗了
雖然是飛彈依次飛來
但是後面發射的飛彈可以選擇前面已用過的攔截系統進行攔截
這裡給乙個拆分例子理解一下
示例:
這個樣例顯然不明顯8 389 207 155 300 299 170 158 65
389 207 155 65
300 299 170 158
我們再來一組樣例
所以答案是26 300 288 290 289 187 266
300 290 289 187
288 266
按照遍歷前推則是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 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈.怎...