uva111是一道简单的dp只要读懂题目,几分钟就可已搞定,只不过要注意输入的是时间顺序,且要注意输入格式!!
var
n,i,j,x:longint;
a,b:array[0..100]of longint;
f:array[0..100,0..100]of longint;
function max(a,b:longint):longint;
begin
if(a>b)then exit(a) else exit(b);
end;
begin
readln(n);
for i:=1 to n do
begin
read(x);a[x]:=i
end;
read(x);
while(x<>0)do
begin
b[x]:=1;
for i:=2 to n do
begin
read(x);b[x]:=i;
end;
fillchar(f,sizeof(f),0);
for i:=1 to n do
for j:=1 to n do
begin
f[i,j]:=max(f[i-1,j],f[i,j-1]);
if(a[i]=b[j])then f[i,j]:=max(f[i,j],f[i-1,j-1]+1);
end;
writeln(f[n,n]);
read(x);
end;
end.