描述
某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈。
輸入飛彈依次飛來的高度(雷達給出的高度資料是不大於30000的正整數),計算這套系統最多能攔截多少飛彈,如果要攔截所有飛彈最少要配備多少套這種飛彈攔截系統。
輸入格式
一行,為飛彈依次飛來的高度
輸出格式
兩行,分別是最多能攔截的飛彈數與要攔截所有飛彈最少要配備的系統數
樣例輸入
389 207 155 300 299 170 158 65
樣例輸出
62
#include #include #include using namespace std;int main()
int down=0,up=0;
c[0]=b[0]=1;
//把問題分別轉化為最長下降和最長上公升子串行
for(i=1;ia[j]&&c[i]c[i]=c[j]+1;
}if(downdown=b[i];
if(upup=c[i];
}printf("%d\n%d\n",down,up);
return 0;
}
1044 攔截飛彈
1999年noip全國聯賽提高組 時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解 題目描述 description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的...
攔截飛彈 題解
description ggf最近經常遭到不明飛彈的襲擊,因此他只好開發了一套飛彈攔截系統。該系統非常先進,使用會拐彎的雷射對飛彈進行射擊。所有被雷射擊中的飛彈就瞬間完蛋,而且一束雷射可以同時摧毀多枚飛彈。但雷射只能向上發射,所以若同一束雷射能依次擊中多枚飛彈,則這些飛彈座標的每一維都嚴格單調上公升...
NOIP 攔截飛彈
題意很簡潔,一共兩問。第一問是求單個攔截系統最多能攔截多少個,根據題意即最長非上公升子串行。第二問有多少飛彈攔截系統才能攔截全部飛彈,即有多少最長非上公升子串行才能包括全部數。稍加思考即可得出最長上公升子串行的長度即為答案。本題的轉化思考和兩個求序列長度寫法要記一下 就我目前看到的題解貌似沒人這麼寫...