codves動態規劃 最長上公升子串行

2021-07-28 13:18:36 字數 856 閱讀 9830

熊大媽的奶牛在小沐沐的薰陶下開始研究資訊題目。小沐沐先讓奶牛研究了最長上公升子串行,再讓他們研究了最長公共子串行,現在又讓他們要研究最長公共上公升子串行了。

小沐沐說,對於兩個串a,b,如果它們都包含一段位置不一定連續的數字,且數字是嚴格遞增的,那麼稱這一段數字是兩個串的公共上公升子串,而所有的公共上公升子串中最長的就是最長公共上公升子串了。

奶牛半懂不懂,小沐沐要你來告訴奶牛什麼是最長公共上公升子串。不過,只要告訴奶牛它的長度就可以了。

分析:和題目說的一樣,這就是一道最長上公升子串行的模版題(lcis演算法)。

function max(a,b:longint):longint;

begin

if a>b then exit(a) else exit(b);

end;

begin

read(n);

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

for j:=1 to n do read(b[j]);

fillchar(f,sizeof(f),0);  

for i:=1 to n do

for j:=1 to n do

if a[i]=b[j] then  

begin

for k:=0 to j-1 do  

if (b[k]=f[i,j]) then f[i,j]:=f[i-1,k]+1;

endelse f[i,j]:=f[i-1,j];  

ans:=0;

for i:=1 to n do

for j:=1 to n do

if f[i,j]>ans then ans:=f[i,j];

write(ans);

end.

動態規劃 最長上公升子串行

問題描述 乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 ik n。比如,對於序列 1,7,3,5,9,4,8 有它的一些上公升子串行,如 1,7 3,4,8 等等...

動態規劃 最長上公升子串行

動態規劃 儲存遞迴中間結果,減少遞迴次數 總時間限制 2000ms 記憶體限制 65536kb 描述 乙個數的序列 bi,當 b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2 an 我們可以得到一些上公升的子串行 ai1,ai2 aik 這裡1 i1 i2 ik n。...

動態規劃 最長上公升子串行

總時間限制 2000ms 記憶體限制 65536kb 描述乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 ik n。比如,對於序列 1,7,3,5,9,4,8 有它...