總的來說就是首先會給你乙個數n之後會給你n個數,需要你把這n個數分為最少的非上公升序列。總的來說就是一題水題。
因為這題其實不難,**量也少所以建議能不看解釋也就不要看了。
#include #include #include #include #include #include #include #include #include #include const int inf=0x3f3f3f3f;
using namespace std;
int arr[100];
int n,t;
int main()
cout《首先要解釋一下lower_bound( )這個方法:lower_bound( begin,end,num)的三個引數分別是查詢方位的起點和終點以及基準數(叫法不知道對不對先這麼叫著先哈)。這個方法會從begin的位置開始到end-1的位置為止找到第乙個大於或等於num的數字。返回的是位址所以只要減去begin就可以得到下標了。
接下來就是正題了:我們首先開乙個陣列填上最大值,再遍歷輸入的數,每次都找到第乙個比當前的數要來的大的數去替換,並記錄下所替換的下標(我們沒把乙個值從最大替換為當前值就是開了乙個新的攔截系統),在把這乙個下標和當前存的下標取最大並存下來(最大的那個下標加就是我們開的攔截系統的個數)。
趁年輕別給自己後悔的機會,錯過了就什麼都來不及了。
hdu1257 最少攔截系統
解釋 當炮彈乙個接乙個的從空中飛來時,系統可以攔住比它攔住前乙個高度低的炮,比前乙個高的不攔,給第二個系統攔 problem description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過...
hdu 1257 最少攔截系統
題目大意 給定一串飛彈的高度,問最少需要多少飛彈攔截系統。思路 lis 分析 首先,至少需要一套攔截系統,一開始可以打到第一顆飛彈的位置。之後每來一顆飛彈更新一下系統能打到的高度。一旦有一顆飛彈所有系統都打不到了,增加乙個系統。那麼就會得到乙個序列,每個系統目前能打到的最高位置。這個序列是遞增的,後...
HDU1257 最少攔截系統
problem description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有...