讨论 / 产生数 68 求助!!!
zhongjiaxin 2010-09-07 06:24:00
点我顶贴 收藏 删除
var

st:string;

map:array[0..9,0..9] of boolean;

num,change:array[0..9] of longint;

a:array[0..10000] of longint;

i,j,k,m:longint;

procedure hp;

var

i,x,j,k:longint;

begin

a[0]:=1; a[1]:=1;

for i:=1 to length(st) do

begin

for j:=1 to a[0] do a[j]:=a[j]*change[ord(st[i])-48];

for j:=1 to a[0] do

begin

inc(a[j+1],a[j] div 10);

a[j]:=a[j] mod 10;

end;

while a[a[0]+1]>0 do inc(a[0]);

end;

end;

begin

readln(st);

val(copy(st,pos(' ',st)+1,length(st)),m,k);

st:=copy(st,1,pos(' ',st)-1);

fillchar(map,sizeof(map),false);

for i:=1 to m do

begin

readln(j,k);

map[j,k]:=true;

end;

for k:=0 to 9 do

for i:=0 to 9 do

for j:=0 to 9 do

map[i,j]:=map[i,j] or (map[i,k] and map[k,j]);

for i:=0 to 9 do map[i,j]:=true;

fillchar(change,sizeof(change),0);

for i:=0 to 9 do

for j:=0 to 9 do

if map[i,j] then inc(change[i]);

fillchar(a,sizeof(a),0);

hp;

for i:=a[0] downto 1 do write(a[i]);

writeln;

end.

为什么全是错误答案?

查看更多回复
提交回复