| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
谁能告诉我为什么不能把数组初始化成-1?初始化成0就AC,-1就WA.
const
a:array[1..5,1..5]of longint=((5,-1,-2,-1,-3),
(-1,5,-3,-2,-4),
(-2,-3,5,-2,-2),
(-1,-2,-2,5,-1),
(-3,-4,-2,-1,0));
var
cases,t,i,j,k,l1,l2,o1,o2:longint;
s1,s2:string;
f:array[0..101,0..101]of longint;
function convert(c:char):longint;
begin
case c of
'A': exit(1);
'C': exit(2);
'G': exit(3);
'T': exit(4);
end;
end;
function max(a,b:longint):longint;
begin
if a>b then exit(a) else exit(b);
end;
procedure init_pre;
var
ch:char;
begin
fillchar(f,sizeof(f),0);
read(l1);read(ch);readln(s1);
read(l2);read(ch);readln(s2);
s1:=copy(s1,1,l1);
s2:=copy(s2,1,l2);
for i:=1 to l1 do
begin
o1:=convert(s1[i]);
f[i,0]:=f[i-1,0]+a[o1,5];
end;
for i:=1 to l2 do
begin
o2:=convert(s2[i]);
f[0,i]:=f[0,i-1]+a[5,o2];
end;
end;
procedure dawn;
begin
for i:=1 to l1 do
for j:=1 to l2 do
begin
o1:=convert(s1[i]);
o2:=convert(s2[j]);
f[i,j]:=max(f[i-1,j]+a[o1,5],f[i,j-1]+a[5,o2]);
f[i,j]:=max(f[i,j],f[i-1,j-1]+a[o1,o2]);
end;
end;
begin
readln(cases);
for t:=1 to cases do
begin
init_pre;
dawn;
writeln(f[l1,l2]);
end;
end.
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator