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 |
果断n^2的BFS可以AC啊 90行代码 63MS的话说这题写死我了。。看DISCUSS里也没有类似的算法。。一直怀疑自己算法是不是有错。。 program pku2329; const dx:array[1..4]of longint=(0,1,0,-1); dy:array[1..4]of longint=(1,0,-1,0); var map,mark,d,x,y:array[1..400,1..400]of longint; queue:array[0..1000000,1..2]of longint; visited:array[1..400,1..400]of boolean; n,top,bot:longint; procedure init; var i,j:longint; begin readln(n); for i:=1 to n do begin for j:=1 to n do begin read(map[i,j]); if map[i,j]<>0 then begin inc(bot); queue[bot,1]:=i; queue[bot,2]:=j; mark[i,j]:=map[i,j]; x[i,j]:=i; y[i,j]:=j; d[i,j]:=0; visited[i,j]:=true; end; end; readln; end; end; procedure bfs; var i:longint; begin repeat inc(top); for i:=1 to 4 do if (queue[top,1]+dx[i]>0) and (queue[top,1]+dx[i]<=n) and (queue[top,2]+dy[i]>0) and (queue[top,2]+dy[i]<=n) then begin if (not visited[queue[top,1]+dx[i],queue[top,2]+dy[i]]) then begin inc(bot); queue[bot,1]:=queue[top,1]+dx[i]; queue[bot,2]:=queue[top,2]+dy[i]; x[queue[bot,1],queue[bot,2]]:=x[queue[top,1],queue[top,2]]; y[queue[bot,1],queue[bot,2]]:=y[queue[top,1],queue[top,2]]; mark[queue[bot,1],queue[bot,2]]:=mark[queue[top,1],queue[top,2]]; d[queue[bot,1],queue[bot,2]]:=d[queue[top,1],queue[top,2]]+1; visited[queue[bot,1],queue[bot,2]]:=true; end else if d[queue[top,1],queue[top,2]]+1=d[queue[top,1]+dx[i],queue[top,2]+dy[i]] then begin if (mark[queue[top,1],queue[top,2]]=0) then mark[queue[top,1]+dx[i],queue[top,2]+dy[i]]:=0 else if (x[queue[top,1],queue[top,2]]<>x[queue[top,1]+dx[i],queue[top,2]+dy[i]]) or (y[queue[top,1],queue[top,2]]<>y[queue[top,1]+dx[i],queue[top,2]+dy[i]]) then mark[queue[top,1]+dx[i],queue[top,2]+dy[i]]:=0; end; end; until top=bot; end; procedure outp; var i,j:longint; begin for i:=1 to n do begin for j:=1 to n do write(mark[i,j],' '); writeln; end; end; begin init; if bot>0 then bfs; outp; end. Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator