最長下降序列 中高階

2022-09-23 09:54:09 字數 1076 閱讀 6842

description

給你一串整數,從左到右按順序挑出一些數字,構成嚴格下降序列,問最長能構成多長

如6個數4 5 2 4 2 2, 那麼最長可以挑出5 4 2,長度為3

input

首先輸出t(t<=50),表示有t組資料。

每組資料:

首先輸入n表示有幾個數(1 後面一行跟著n個整數

output

對於每個樣例輸出乙個數字,表示最長的長度

sample input

164 5 2 4 2 2sample output

這題可以當模板用,用了單調佇列的思想。

模板1:嚴格下降子串行

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

int a[10006],dp[10006];

int find(int l,int r,int x)

{ int mid;

while(l<=r)

{ mid=(l+r)/2;

if(dp[mid]>x)l=mid+1;

else if(dp[mid]模板2:不上公升子串行(非嚴格)#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

int a[10006],dp[10006];

int find(int l,int r,int x)

{ int mid;

while(l<=r)

{ mid=(l+r)/2;

if(dp[mid]>=x)l=mid+1;

else if(dp[mid]

最長下降序列 中高階

description 給你一串整數,從左到右按順序挑出一些數字,構成嚴格下降序列,問最長能構成多長 如6個數4 5 2 4 2 2,那麼最長可以挑出5 4 2,長度為3 input 首先輸出t t 50 表示有t組資料。每組資料 首先輸入n表示有幾個數 1output 對於每個樣例輸出乙個數字,表...

最長不下降子串行

a1 t0 an a an 1 2 b an c d n 1 求該序列最長不下降子串行長度 n不是很大顯然可以暴力。n很大呢?那就不斷減迴圈節長度直至減到乙個閾值內,再暴力。正確性顯然,只要閾值不要設太小。include include include define fo i,a,b for i a...

求最長不下降序列

求最長不下降序列 time limit 1000ms memory limit 65536k total submit 398 accepted 171 description 設有n n 1000 個不相同的整數 小於32767 組成的數列,記為 a1,a2,an,其中任意兩個數不相同。例如 3,...