博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1728 逃离迷宫(dFS+优先队列)
阅读量:6589 次
发布时间:2019-06-24

本文共 1175 字,大约阅读时间需要 3 分钟。

求转弯最少的走路方式!!!!

#include<stdio.h>

#include<string.h>

#include<queue>
using namespace std;
struct node
{
int x,y;
int step;
friend bool operator<(node a,node b)
{
return a.step>b.step;
}
};
char map[200][200];
int visit[200][200],n,m,p;
int dir[4][2]={0,1,1,0,-1,0,0,-1};
int judge(int x,int y)
{
if(x>=1&&x<=n&&y>=1&&y<=m&&map[x][y]=='.')
return 1;
return 0;
}
int dfs(int sx,int sy,int dx,int dy)
{
priority_queue<node>q;
int i,x,y;
node cur,next;
cur.x=sx;cur.y=sy;cur.step=-1;
q.push(cur);
visit[sx][sy]=1;
if(sx==dx&&sy==dy)
return 1;
while(!q.empty())
{
next=q.top();
q.pop();
for(i=0;i<4;i++)
{
x=next.x+dir[i][0];
y=next.y+dir[i][1];
while(judge(x,y))//同一方向走到底
{
if(visit[x][y]==0)
{
cur.x=x;
cur.y=y;
cur.step=next.step+1;
if(x==dx&&y==dy&&cur.step<=p)
return 1;
q.push(cur);
visit[x][y]=1;
}
x=x+dir[i][0];
y=y+dir[i][1];
}
}
}
return 0;
}
int main()
{
int i,T,sx,sy,dx,dy;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
memset(visit,0,sizeof(visit));
for(i=1;i<=n;i++)
scanf("%s",map[i]+1);
scanf("%d%d%d%d%d",&p,&sy,&sx,&dy,&dx);
if(dfs(sx,sy,dx,dy))//输入方式坑人
printf("yes\n");
else
printf("no\n");
}
return 0;

}

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1728

 

转载地址:http://gxkio.baihongyu.com/

你可能感兴趣的文章
打开“互联运输”新视野 oTMS获A+轮融资
查看>>
《中国人工智能学会通讯》——7.16 什么是篇章语义分析
查看>>
网件Netgear多款路由器存在任意命令注入漏洞 R7000 POC已经开始流传 据说升级固件都没用...
查看>>
智能工厂关键技术:感测组件与大数据分析
查看>>
后门还是漏洞?海康威视建议你尽快升级固件
查看>>
分析:云计算时代即将到来
查看>>
CIO如何构建扁平化的IT部门?
查看>>
IDC:到2019年物联网开支预计突破1.3万亿美元
查看>>
边缘计算架构增强数据中心—雾计算、边缘计算正蓬勃兴起
查看>>
将线下场景搬到线上,青牛软件发布视频呼叫中心产品
查看>>
国内航空业大数据新应用:星环助力厦门航空
查看>>
httpoxy漏洞远程攻击PHP Python应用
查看>>
解读非法泄露的数据和隐私的流入路径
查看>>
ImageMagick再爆DoS漏洞CVE-2017-8830 7.0.5及7.0.6版本受影响 波及多个Ubuntu Linux版本
查看>>
近几年前端技术盘点以及 2016 年技术发展方向
查看>>
RedHat Linux服务器安全配置细节
查看>>
大数据架构面临技术集成的巨大障碍
查看>>
智能中控:让“各自为政”的智能家居并肩作战
查看>>
安卓耗电之谜:罪魁祸首是谁?
查看>>
剖析大数据分析方法论的几种理论模型
查看>>