• HDU 1728 逃离迷宫


    //从一点多写到现在..中间 还参考 了写过的代码,但是还是错了..不知道为什么..有空再写;

    #include<iostream>
    
    #include<queue>
    
    #define maxn 105 using namespace std;
    
    char a[maxn][maxn];
    
    bool visit[maxn][maxn];
    
    int dir[4][2]={{0,-1},{1,0},{0,1},{-1,0}};
    
    int x1,y1,x2,y2,t,m,n,turn;
    
    struct node {    
    
    int x,y,dir,t;
    
    }p,q;
    
    bool judge(int i,int j)
    
    {  return i>0 && i<=m && j>0 && j<=n && a[i][j]=='.'; }
    
    void bfs() {  queue<node> game;  memset(visit,false,sizeof(visit));  
    
    q.x=y1,q.y=x1;q.t=-1;q.dir=-1;  game.push(q);  visit[q.x][q.y]=true;  
    
    while(!game.empty())  
    
    {   p=game.front();   game.pop();   for(int i=0;i<4;i++)   
    
    {    q.x=p.x+dir[i][0];q.y=p.y+dir[i][1];q.t=p.t+1;   
    
     q.dir=i%2;        
    
    if(q.t<= turn &&q.x==y2 && q.y==x2)    {     printf("yes
    ");     return;    }   
    
     while(judge(q.x,q.y)&&q.t<=turn&&q.dir!=p.dir)   
    
     {     if(!visit[q.x][q.y]&&q.t<=turn-1)     
    
     game.push(q),visit[q.x][q.y]=true;            q.x+=dir[i][0];           q.y+=dir[i][1];       
    
    if(q.x==y2 && q.y==x2 && q.t<= turn)   
    
     {     printf("yes
    ");     return ;    }         }  }    }
    
     printf("no
    "); }
    
    int main() {
    
     //freopen("1728.txt","r",stdin);  int i,j;  
    
    scanf("%d",&t);    while(t--)   {       
    
     scanf("%d%d",&m,&n);    for(i=1;i<=m;i++)   
    
     {     getchar();     for(j=1;j<=n;j++)      
    
    scanf("%c",&a[i][j]);    }    
    
    scanf("%d%d%d%d%d",&x1,&y1,&x2,&y2,&turn);   
    
     if(x1==x2 &&y1==y2 || a[y1][x1]=='*')     printf("no
    ");      
    
    else bfs();   }    
    
    return 0; }
  • 相关阅读:
    kafka作业详解(HTML+Nginx+ngx_kafka_module+Kafka)
    Zookeeper知识点总结
    用CocoaPods做iOS程序的依赖管理
    iOS 正则表达式
    iOS 自定义UITabBarController
    iOS 同一UILabel改变数字的颜色
    iOS 自定义字体
    iOS 修改状态条颜色
    iOS 过滤掉HTML标签
    iOS UILabel自适应
  • 原文地址:https://www.cnblogs.com/xiaoniuniu/p/3878206.html
Copyright © 2020-2023  润新知