zoukankan      html  css  js  c++  java
  • hdu 2102 A计划

    搜索的题就是要细心

    #include<stdio.h>
    #include<string.h>
    #include<queue>
    #define inf 0x3fffffff
    using namespace std;
    int vis[2][11][11];
    char map[2][11][11];
    int n,m,T;
    int dir[4][2]={0,1,1,0,0,-1,-1,0};
    struct op
    {
    	int k,x,y,step;
    };
    int judge(int k,int x,int y)
    {
    	if(x<0||x>=n||y<0||y>=m||map[k][x][y]=='*')
    		return 0;
    	return 1;
    }
    int bfs()
    {
    	int i,x,y,step,k;
    	queue<op>Q;
    	op cur,next;
    	cur.k=0;
    	cur.x=0;
    	cur.y=0;
    	cur.step=0;
    	Q.push(cur);
    	vis[0][0][0]=0;
    	while(!Q.empty())
    	{
    		cur=Q.front();
    		Q.pop();
    		if(cur.step>T)continue;
    		if(map[cur.k][cur.x][cur.y]=='P')
    			return cur.step;
    		
    		for(i=0;i<4;i++)
    		{
    			x=cur.x+dir[i][0];
    			y=cur.y+dir[i][1];
    			k=cur.k;
    			step=cur.step+1;
    			
    			if(map[k][x][y]=='#')
    			{
    				k=(k+1)%2;
    				if(map[k][x][y]=='#'||map[k][x][y]=='*')
    					continue;
    			}
    			if(judge(k,x,y)==0)continue;
    			if(vis[k][x][y]>step)
    			{
    				vis[k][x][y]=step;
    				next.k=k;
    				next.step=step;
    				next.x=x;
    				next.y=y;
    				Q.push(next);
    			}
    		}
    	}
    	return -1;
    }
    int main()
    {
    	int t,i,j,p;
    	scanf("%d",&t);
    	while(t--)
    	{
    		for(i=0;i<2;i++)
    			for(j=0;j<11;j++)
    				for(p=0;p<11;p++)
    					vis[i][j][p]=inf;
    		scanf("%d%d%d",&n,&m,&T);
    		for(i=0;i<n;i++)
    			scanf("%s",map[0][i]);
    		for(i=0;i<n;i++)
    			scanf("%s",map[1][i]);
    		j=bfs();
    		if(j==-1)
    			puts("NO");
    		else puts("YES");
    	}
    	return 0;
    }
    
    


     

  • 相关阅读:
    POJ 2672 Tarjan + 缩点 + 拓扑思想
    HDU1269迷宫城堡(裸Tarjan有向图求强连通分量个数)
    Tarjan求有向图强连通详解
    Jedis源代码探索
    多线程下使用Jedis
    Jedis分片连接池
    Jedis使用过程中踩过的那些坑
    jedis提纲
    jedis中的一致性hash算法
    字典:dict.c/dict.h
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3061757.html
Copyright © 2011-2022 走看看