| ||||||||||
| 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 | |||||||||
Re:用bfs700ms给ac了,感动ing。In Reply To:Re:用bfs700ms给ac了,感动ing。 Posted by:Master_Chivu at 2010-09-08 21:27:47 终于也用pascal bfs裸过 发个代码给后来人 172MS飘过
const js:array[1..9]of longint=(43046721,4782969,531441,59049,6561,729,81,9,1);
hj:array[1..4]of char=('u','d','r','l');
type bt=array[1..9]of 0..8;
var s:string;
start,a:bt;
i,l,n,z:integer;
pd:array[0..9999991]of 0..1;
function zh(x:bt):longint;
var i:integer;
begin
zh:=0;
for i:=1 to 9 do zh:=zh+x[i]*js[i];
end;
procedure bfs;
var a:array[1..200000]of bt;
b:array[1..200000]of longint;
c:array[1..200000]of 0..4;
d:array[1..200000]of 0..9;
x1,x2:bt;
open,closed,zero,bj,i,p,n:longint;
f:array[1..4]of integer;
g:array[1..200000]of 0..4;
procedure ins(x2:bt;ct,t:longint);
var ttt:longint;
begin
ttt:=zh(x2)mod 9999991;
if pd[ttt]=0 then
begin
pd[ttt]:=1;
inc(closed);
a[closed]:=x2;
b[closed]:=open;
c[closed]:=t;
d[closed]:=ct;
if ttt=4481041 then bj:=1;
end;
end;
begin
open:=0;closed:=1;
a[1]:=start;
b[1]:=0;
c[1]:=0;
d[1]:=z;
bj:=0;
pd[zh(start)mod 9999991]:=1;
repeat
inc(open);
x1:=a[open];
zero:=d[open];
f[1]:=zero-3;
f[3]:=zero+1;
if(f[3]=4)or(f[3]=7)or(f[3]>9)then f[3]:=-1;
f[2]:=zero+3;
if f[2]>9 then f[2]:=-1;
f[4]:=zero-1;
if(f[4]=3)or(f[4]=6)or(f[4]<1)then f[4]:=-1;
for i:=1 to 4 do
if f[i]>0 then
begin
x2:=x1;
p:=x2[f[i]];
x2[f[i]]:=x2[zero];
x2[zero]:=p;
ins(x2,f[i],i);
if bj=1 then break;
end;
if bj=1 then break;
until(open>=closed)or(pd[4481041]=1);
n:=0;
while closed>0 do
begin
inc(n);
g[n]:=c[closed];
closed:=b[closed];
end;
dec(n);
for i:=n downto 1 do write(hj[g[i]]);writeln;
end;
begin
readln(s);
l:=length(s);
n:=0;
for i:=1 to l do
if s[i]in['0'..'8']then
begin
inc(n);
start[n]:=ord(s[i])-48;
end else
if s[i]='x'then
begin
inc(n);
start[n]:=0;
z:=n;
end;
bfs;
end.
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator