zoukankan      html  css  js  c++  java
  • hdu 2102

    额,还是BFS,只不过分层进行而已,注意时空机部分的就好了

    真的好熟了呀,可是每次总有一些小错误要改好久

    郁闷呐

    #include<iostream>
    #include<queue>
    using namespace std;
    char map[2][10][10];
    int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}},n,m,T;
    bool vis[2][10][10],flag;
    struct node 
    {
    	int x,y,z,cnt;
    	node(int _z=0,int _x=0,int _y=0,int _cnt=0):z(_z),x(_x),y(_y),cnt(_cnt){};
    	friend bool operator <(const node& a,const node &b)
    	{
    		return a.cnt>b.cnt;
    	}
    };
    void bfs()
    {
    	node f;
    	f.x=0;f.y=0;f.z=0;f.cnt=0;
    	priority_queue<node> Q;
    	Q.push(f);
    	vis[0][0][0]=1;
    	while(!Q.empty())
    	{
    		node t=Q.top();
    		Q.pop();
    		if(t.cnt>T) return ;
    		if(map[t.z][t.x][t.y]=='P')
    		{
    			flag=1;
    			return;
    		}
    		for(int k=0;k<4;k++)
    		{
    			int i=t.x+dir[k][0];
    			int j=t.y+dir[k][1];
    		  // cout<<i<<' '<<j<<endl;
    			if(i<n&&i>=0&&j<m&&j>=0&&!vis[t.z][i][j]&&map[t.z][i][j]!='*')
    			{	
    				vis[t.z][i][j]=1;
    				if(map[t.z][i][j]=='#')
    				{
    					int c;
    					if(t.z==0)
    						c=1;
    					else c=0;
    					if(!vis[c][i][j]&&map[c][i][j]!='#'&&map[c][i][j]!='*')//这里记得上下俩层相对位置是否同为时空机
    					{
    						vis[c][i][j]=1;
    						Q.push(node(c,i,j,t.cnt+1));
    					}
    				}
    				else Q.push(node(t.z,i,j,t.cnt+1));
    			}
    		}
    	}
    	return;
    }
    int main()
    {
    	int cas;
    	cin>>cas;
    	while(cas--)
    	{
    		cin>>n>>m>>T;
    		for(int i=0;i<n;i++)
    			cin>>map[0][i];
    		for(int i=0;i<n;i++)
    			cin>>map[1][i];
    		memset(vis,0,sizeof(vis));
    		flag=0;
    		bfs();
    		if(flag) cout<<"YES"<<endl;
    		else cout<<"NO"<<endl;
    	}
    	return 0;
    }
    
  • 相关阅读:
    SVN 主干(trunk)、分支(branch )、标记(tag)
    HTML的img标签:alt属性和title属性
    HTML的img标签:alt属性和title属性
    Eclipse远程调试Tomcat
    Eclipse远程调试Tomcat
    使用 Eclipse 远程调试 Java 应用程序
    使用 Eclipse 远程调试 Java 应用程序
    14.Windows 与 Linux 文件共享
    13.远程登录 Linux
    12.Linux 网络配置
  • 原文地址:https://www.cnblogs.com/nanke/p/2126799.html
Copyright © 2011-2022 走看看