HDU1257 最少攔截系統 LIS 思維

2021-08-22 09:49:59 字數 641 閱讀 9480

啥都不說了。。主要是思維吧。。

同樣先貼大佬部落格orz:

對於這個最長上公升子串行而言,每乙個數代表乙個攔截系統的最小值, 並且由於序列是上公升的,每乙個數都不能再攔截序列中的下乙個數,因為下乙個數更大, 因此這個子串行的長度就是攔截系統數。

再直接附上ac**吧:

#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define pi acos(-1.0)

#define ll long long

typedef pairpp;

const int inf=0x3f3f3f3f;

const ll mod=1e9+7ll;

int n;

int a[1005];

int dp[1005];

int main()

printf("%d\n",ans);

}return 0;

}

是的,就是道很裸的lis,主要是看能不能想得到了。。我就想不出來啊55555...

hdu1257 最少攔截系統

解釋 當炮彈乙個接乙個的從空中飛來時,系統可以攔住比它攔住前乙個高度低的炮,比前乙個高的不攔,給第二個系統攔 problem description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過...

hdu 1257 最少攔截系統

題目大意 給定一串飛彈的高度,問最少需要多少飛彈攔截系統。思路 lis 分析 首先,至少需要一套攔截系統,一開始可以打到第一顆飛彈的位置。之後每來一顆飛彈更新一下系統能打到的高度。一旦有一顆飛彈所有系統都打不到了,增加乙個系統。那麼就會得到乙個序列,每個系統目前能打到的最高位置。這個序列是遞增的,後...

HDU1257 最少攔截系統

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