bzoj1627 / P2873 [USACO07DEC]泥水坑Mud Puddles

Posted kafuuchino

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj1627 / P2873 [USACO07DEC]泥水坑Mud Puddles相关的知识,希望对你有一定的参考价值。

P2873 [USACO07DEC]泥水坑Mud Puddles

bfs入门。

对于坐标为负的情况,我们可以给数组下标加上$abs(min(minx,miny))$转正(根据题意判断)

技术分享图片
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<queue>
 5 #define re register
 6 using namespace std;
 7 #define M 502
 8 const int d1[4]={0,1,0,-1};
 9 const int d2[4]={1,0,-1,0};
10 struct node{int x,y,t;}; queue <node> h;
11 int tx,ty,n; bool vis[M*2+5][M*2+5];
12 int main(){
13     scanf("%d%d%d",&tx,&ty,&n); tx+=M;ty+=M; int q1,q2;
14     for(int i=1;i<=n;++i) scanf("%d%d",&q1,&q2),vis[q1+M][q2+M]=1;
15     h.push((node){M,M,0}); vis[M][M]=1;
16     while(!h.empty()){
17         node u=h.front(); h.pop();
18         for(int i=0;i<4;++i){
19             int r1=u.x+d1[i],r2=u.y+d2[i];
20             if(vis[r1][r2]) continue;
21             if(r1==tx&&r2==ty){
22                 printf("%d",u.t+1);
23                 return 0;
24             }h.push((node){r1,r2,u.t+1}),vis[r1][r2]=1;
25         }
26     }
27 }
View Code

 

以上是关于bzoj1627 / P2873 [USACO07DEC]泥水坑Mud Puddles的主要内容,如果未能解决你的问题,请参考以下文章

bzoj1627[Usaco2007 Dec]穿越泥地*

bzoj 1627: [Usaco2007 Dec]穿越泥地bfs

map|BFSBZOJ 1627 [Usaco2007 Dec]穿越泥地

bzoj1644 / P1649 [USACO07OCT]障碍路线Obstacle Course

bzoj1625 / P2871 [USACO07DEC]手链Charm Bracelet

bzoj1626 / P2872 [USACO07DEC]道路建设Building Roads