tyvj P1049 最長不下降子串行

2021-09-30 05:22:01 字數 806 閱讀 8733

描述 description

求最長不下降子串行的長度

輸入格式 input format

第一行為n,表示n個數

第二行n個數

輸出格式 output format

最長不下降子串行的長度

樣例輸入 sample input

樣例輸出 sample output

時間限制 time limitation

各個測試點1s

注釋 hint

n小於5000

for each num <=maxint

經典dp,讓我想到了合唱隊形。

f[i]表示第i個人向左能得到的最大值,

列舉j from 1 to i-1

在a[i]>=a[j] 的條件下f[i]:=max[f[j]+1]; 

varn,i,j,k:longint;

a,f:array[1..5000] of longint;

begin

readln(n);

for i:=1 to n do read(a[i]);

for i:=1 to n do f[i]:=1;

f[1]:=1;

for i:=2 to n do

for j:=1 to i-1 do

if (a[i]>=a[j]) and (f[i]k then k:=f[i];

writeln(k);

end.

需要注意的是這句:  for i:=1 to n do f[i]:=1;  賦初值的時候一定要賦成1,不能賦成0.。。不然要悲劇。。

TYVJ P1049 最長不下降子串行

最長不下降子串行 描述 description 求最長不下降子串行的長度 輸入格式 inputformat 第一行為n,表示n個數 第二行n個數 輸出格式 outputformat 最長不下降子串行的長度 樣例輸入 sampleinput 複製資料 3 1 2 3 樣例輸出 sampleoutput...

DP TYVJ P1049 最長不下降子串行

原題 型別 dp 原始碼 include includeusing namespace std int main for int i n 1 i 1 i if l 0 int max 0 for int i 1 i n i printf d max system pause return 0 最後狀...

最長不下降子串行

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...