【Usaco 2007 Dec silver】穿越泥地 (Standard IO)
来源:互联网 发布:免费淘宝装修软件 编辑:程序博客网 时间:2024/04/29 11:57
题意:
FJ的屋子在平面坐标(0, 0)的位置,贝茜所在的牛棚则位于坐标(X,Y) (-500 <= X <= 500; -500 <= Y <= 500)处。当然咯,FJ也看到了地上的所有N(1 <= N <= 10,000)个泥塘,第i个泥塘的坐标为(A_i, B_i) (-500 <= A_i <= 500;-500 <= B_i <= 500)。每个泥塘都只占据了它所在的那个格子。不能走到池塘,而且只能平行x,y轴走。
思路:
bfs,加上记忆化
程序:
type Point=record x,y,w:longint; end;const maxn=500; dx:array [1..4] of longint=(1,-1,0,0); dy:array [1..4] of longint=(0,0,1,-1);var a:array [-maxn-2..maxn+1,-maxn-2..maxn+2] of boolean; x,y,x1,y1,n,i,j:longint; state:array [1..1000000] of Point;function cheak(x,y:longint):boolean;begin if a[x,y] then exit(false); if (x<-500) or (x>500) or (y<-500) or (y>500) then exit(false); exit(true);end;procedure bfs;var y1,x1,i,j,head,tail:longint;begin head:=0; tail:=1; state[1].x:=0; state[1].y:=0; state[1].w:=0; repeat inc(head); for i:=1 to 4 do begin x1:=state[head].x+dx[i]; y1:=state[head].y+dy[i]; if cheak(x1,y1) then begin inc(tail); a[x1,y1]:=true; state[tail].x:=x1; state[tail].y:=y1; state[tail].w:=state[head].w+1; end; if (x1=x) and (y1=y) then begin writeln(state[tail].w); halt; end; end; until head=tail;end;begin readln(x,y,n); for i:=1 to n do begin readln(x1,y1); a[x1,y1]:=true; end; bfs; writeln(-1);end.
0 0
- 【Usaco 2007 Dec silver】穿越泥地 (Standard IO)
- Usaco 2007 Dec silver 穿越泥地
- USACO 2007 Dec Silver 2.Building Roads
- bzoj1627[Usaco2007 Dec]穿越泥地
- BZOJ 1627: [Usaco2007 Dec]穿越泥地
- 【BZOJ 1627】 [Usaco2007 Dec]穿越泥地
- BZOJ 1627: [Usaco2007 Dec]穿越泥地
- USACO 2007 Dec Silver Mud Puddles bfs or A-star
- BFS-BZOJ-1627-[Usaco2007 Dec]穿越泥地
- bzoj 1627: [Usaco2007 Dec]穿越泥地(BFS)
- USACO 2009 Dec Silver 2.Music Notes
- USACO 2008 Dec Silver 1.Hay For Sale
- USACO 2010 Dec Silver 2.Treasure Chest 简单博弈 DP
- bzoj1627【Usaco2007 Dec】穿越泥池
- 【poj 3268】 Silver Cow Party 【USACO 2007 February Silver】
- poj 3279 Filptile (USACO 2007 Open Silver)
- 【USACO 2007 February Silver】农场派对
- 【poj3264】Balanced Lineup 【USACO 2007 January Silver】
- docker实战(二) - 基本概念
- 万分之一错误率问题的分析及定位
- android 如何设置屏幕亮度默认值为自动调节
- (c++)求1+2!+3!+4!+…+30!。 科学计数法,保留两位小数。
- Android开发 Error(建议收藏下来以备不时之需):The number of method references in a .dex file cannot exceed 64K.
- 【Usaco 2007 Dec silver】穿越泥地 (Standard IO)
- 交叉编译并移植opencv3.0.0到arm板
- 安卓开源项目周报0117
- PAT甲级1028
- MySQL与网页进行数据传递(下)
- 将android本地项目上传到GitHub
- 利用composer安装 yii没有vendor目录
- 学完java后步入C#的学习历程(一)
- java实现数组的增删改查