zoukankan      html  css  js  c++  java
  • POJ 3626 Mud Puddles (BFS)

    点击打开链接

    将所有的数据都+500,然后模版。。

    #include"stdio.h"
    #include"string.h"
    #include"queue"
    using namespace std;
    int d[4][2]={1,0,0,1,-1,0,0,-1};
    int x,y,n,map[1001][1001];
    struct node
    {
    	int x,y,step;
    };
    void bfs()
    {
    	int i;
    	queue<node>Q;
    	node q,p;
    	p.x=500;
    	p.y=500;
    	p.step=0;
    	Q.push(p);
    	map[p.x][p.y]=1;
    	while(!Q.empty())
    	{
    		p=Q.front();
    		Q.pop();
    		for(i=0;i<4;i++)
    		{
    			q.x=p.x+d[i][0];
    			q.y=p.y+d[i][1];
    			q.step=p.step+1;
    			if(q.x>=0&&q.x<=1000&&q.y>=0&&q.y<=1000&&map[q.x][q.y]==0)
    			{
    				if(q.x==x&&q.y==y)
    				{
    					printf("%d\n",q.step);
    					return ;
    				}
    				map[q.x][q.y]=1;
    				Q.push(q);
    			}
    		}
    	}
    }
    int main()
    {
    	int i,a,b;
    	while(scanf("%d%d%d",&x,&y,&n)!=-1)
    	{
    		x+=500;y+=500;
    		memset(map,0,sizeof(map));
    		for(i=0;i<n;i++)
    		{
    			scanf("%d%d",&a,&b);
    			map[a+500][b+500]=1;
    		}
    		if(x==500&&y==500)
    			printf("0\n");
    		else bfs();
    	}
    	return 0;
    }
    


  • 相关阅读:
    luogu P3174 毛毛虫
    P3386二分图最大匹配模版
    P4180 严格次小生成树
    差分约束
    高斯消元
    P1306 斐波那契公约数
    极值
    排序
    P1852 [国家集训队]跳跳棋
    高精度模版
  • 原文地址:https://www.cnblogs.com/yyf573462811/p/6365296.html
Copyright © 2011-2022 走看看