攔截飛彈,最長非上公升子串行,DP 二分

2021-07-29 19:44:41 字數 2019 閱讀 1277

題目描述:某國為了防禦敵國的飛彈襲擊,開發出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,並觀測到飛彈依次飛來的高度,請計算這套系統最多能攔截多少飛彈。攔截來襲飛彈時,必須按來襲飛彈襲擊的時間順序,不允許先攔截後面的飛彈,再攔截前面的飛彈。 

輸入:每組輸入有兩行,

第一行,輸入雷達捕捉到的敵國飛彈的數量k(k<=25),

第二行,輸入k個正整數,表示k枚飛彈的高度,按來襲飛彈的襲擊時間順序給出,以空格分隔。

輸出:每組輸出只有一行,包含乙個整數,表示最多能攔截多少枚飛彈。

樣例輸入:

8

300 207 155 300 299 170 158 65

樣例輸出:

6

2023年北京大學計算機研究生機試真題

#define _crt_secure_no_warnings

#include #include #include #include #include #include #include #include #include #include #include #include #define inf 0x7fffffff

using namespace std;

const int maxn = 1e4 + 7;

int myints[maxn];

int lnis[maxn];//lnis[i]表示以aryint[i]為最小值得最長非上公升子串行的長度

int minv[maxn];//minv[i]表示長度為lnis[i]的最長非上公升子串行的最小元素(盡可能大)

bool comp(int a, int b)

int lnis(int aryint, int n)

else if (minv[lnis[i] - 1] >= aryint[i] && aryint[i] > minv[lnis[i]])

} return nmaxlnis;

}int main()

return 0;

}

by zzuwenjie 2017-3-30 19:59:48

再次編輯

空間優化,去掉了lnis陣列

#define _crt_secure_no_warnings  

#include #include #include #include #include #include #include #include #include #include #include #include #define inf 0x7fffffff

using namespace std;

const int maxn = 1e4 + 7;

int myints[maxn]; //j表示以aryint[i]為最小值得最長非上公升子串行的長度

int dp[maxn];//dp[i]表示長度為j的最長非上公升子串行的最小元素(盡可能大)

bool comp(int a, int b)

int lnis(int aryint, int n)

else if (dp[j - 1] >= aryint[i] && aryint[i] > dp[j])

} return nmaxlnis;

}int main()

return 0;

}

附lis動規函式

const int n = 100007;

int a[n], dp[n];

int lis(int ary, int n)

else if (dp[j - 1] < ary[i] && ary[i] < dp[j])

} return maxlen;

}

飛彈攔截(最長非上公升子串行和最長上公升子串行)

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

攔截飛彈(最長上公升子串行,最長不上公升子串行)

攔截飛彈 noip 1999 題目描述 張琪曼 老師,修羅場是什麼?墨老師 修羅是佛家用語,修羅畢生以戰鬥為目標,修羅場指的是他們之間的死鬥坑,人們通常用 修羅場 來形容慘烈的戰場。後來又引申出 乙個人在困境中做絕死奮鬥 的意思。所以,這其實也在暗示我們,即使是身處絕境,也不要放棄奮鬥。再說了,情況...

攔截飛彈 最長上公升子串行 LIS

某國為了防禦敵國的飛彈襲擊,開發出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,並觀測到飛彈依次飛來的高度,請計算這套系統最多能攔截多少飛彈。攔截來襲飛彈時,必須按來襲飛彈襲擊的時間順...