最長非遞減子串行 dp 二分

2021-08-26 12:01:16 字數 759 閱讀 9781

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 262144k,其他語言524288k

64bit io format: %lld

乙隻青蛙出去旅遊,因為中國有一句古話說的好:「由簡入奢易,由奢入儉難」,所以這只青蛙當看的當前景點比前面看過的景點差的時候,青蛙就會說「不開心」為了避免這只青蛙說「不開心」,並且使青蛙看的景點盡量的多,所以他請你幫忙給他安排一條線路,使青蛙可以看到盡量多的景點,並且不走回頭路。

第一行為乙個整數n,表示景點的數量

接下來n行,每行1個整數,分別表示第i個景點的質量

乙個整數,表示青蛙最多可以看到幾個景點
示例1

10318

7141012

2330

1624

6
景點質量為1到n+23的整數

10<=n<23 10%

23<=n<233 30%

233<=n<2333 60%

2333<=n<23333 100%

題目要求最長非遞減子串行,方法是dp+二分,dp[i]表示長度為i的最小尾元素.

#includeusing namespace std;

const int maxn=1e5;

int dp[maxn],a[maxn];

int search(int len,int x)

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

}}

最長非遞減子串行的應用

description 我們有乙個數列a1,a2.an,你現在要求修改數量最少的元素,使得這個數列嚴格遞增。其中無論是修改前還是修改後,每個元素都必須是整數。請輸出最少需要修改多少個元素。input 第一行輸入乙個 t 1 leq t leq 10 表示有多少組資料 每一組資料 第一行輸入乙個 n ...

最長遞減子串行

最長遞增子串行算過很多了?那我們這次來求個遞減的試試 第一行為乙個整數t,代表有t組測試資料。每組測試資料為乙個只含有字母和數字的字串 字串長度不超過1000 對於每組測試資料,輸出其最長遞減子串行的長度 要求以ascii碼進行比較且嚴格遞減 程式源 include using namespace ...

最長遞減子串行

最長遞減子串行 如果array i aarray j 第i個數的最長遞減子串行的長度 等於 i 1到最後乙個數的最長遞減子串行的長度 加 1 否則 最長遞減子串行的長度就是1 最後乙個數的最長遞減子串行的長度等於1,最開始的時候dp i 的值都為1 然後倒著求最長遞減子串行 如 3,8,7,5,4,...