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

解题思路:从出发点开始DFS。出发点与终点中间只能通过0相连,或者直接相连,判断能否找出这样的路径。

 #include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define N 1005
#define M 1005
int map[N][M],n,m;
bool vis[N][M],ok;
int move[][]={{,},{-,},{,},{,-}};
void can(int x,int y,int l1,int l2,int time,int last)//time记录已经转过几次弯
{
int i,xx,yy;
if(ok)
return;
if(time>)
return;
for(i=;i<&&ok==false;i++)
{
xx=x+move[i][];
yy=y+move[i][];
if(xx>&&xx<=n&&yy>&&yy<=m)
{
if(xx==l1&&yy==l2)
{
if(time<){
ok=true;return;
}
else if(i==last)
{
ok=true;return;
}
}
if(map[xx][yy]==&&!vis[xx][yy])
{
vis[xx][yy]=true;
if(i==last)
can(xx,yy,l1,l2,time,last);
else
can(xx,yy,l1,l2,time+,i);
vis[xx][yy]=false;
}
}
}
return;
}
int main()
{
// freopen("in.in","r",stdin);
int k,i,j;
while(scanf("%d%d",&n,&m),n+m)
{
for(i=;i<=n;i++)
for(j=;j<=m;j++)
scanf("%d",&map[i][j]);
scanf("%d",&k);
int x,y,l1,l2;
while(k--)
{
ok=false;
scanf("%d%d%d%d",&x,&y,&l1,&l2);
if(map[x][y]!=map[l1][l2])
ok=false;
else if(map[x][y]==)
ok=false;
else
{
if((((x+)==l1||(x-)==l1)&&l2==y)||((y-)==l2||(y+)==l2)&&x==l1)
ok=true;
else
{
memset(vis,false,sizeof(vis));
int tt,rr;
for(i=;i<&&ok==false;i++)
{
tt=x+move[i][];
rr=y+move[i][];
if(tt>&&tt<=n&&rr>&&rr<=m&&map[tt][rr]==&&!vis[tt][rr]){
vis[tt][rr]=true;
can(tt,rr,l1,l2,,i);//i记录该步走的方向
vis[tt][rr]=false;
}
}
}
}
if(ok)
printf("YES\n");
else
printf("NO\n");
}
}
return ;
}

hdu 1175 连连看 DFS的更多相关文章

  1. HDU 1175 连连看 (DFS+剪枝)

    <题目链接> 题目大意:在一个棋盘上给定一个起点和终点,判断这两点是否能通过连线连起来,规定这个连线不能穿过其它的棋子,并且连线转弯不能超过2次. 解题分析:就是DFS从起点开始搜索,只不 ...

  2. HDU 1175 连连看(超级经典的bfs之一)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1175 连连看 Time Limit: 20000/10000 MS (Java/Others)     ...

  3. hdu 1175(BFS&DFS) 连连看

    题目在这里:http://acm.hdu.edu.cn/showproblem.php?pid=1175 大家都很熟悉的连连看,原理基本就是这个,典型的搜索.这里用的是广搜.深搜的在下面 与普通的搜索 ...

  4. Hdu 1175 连连看(DFS)

    Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1175 因为题目只问能不能搜到,没问最少要几个弯才能搜到,所以我采取了DFS. 因为与Hdu ...

  5. HDU - 1175 连连看 【DFS】【BFS】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1175 思路 这种题一想到就用搜索, 但是内存是32m 用 bfs 会不会MLE 没错 第一次 BFS的 ...

  6. hdu - 1728逃离迷宫 && hdu - 1175 连连看 (普通bfs)

    http://acm.hdu.edu.cn/showproblem.php?pid=1728 这两道题花了一下午的时候调试,因为以前做过类似的题,但是判断方向的方法是错的,一直没发现啊,真无语. 每个 ...

  7. hdu 1175 连连看 (深搜)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1175 题目大意:如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子)这样的两个棋子可以 ...

  8. HDU 1175 连连看 (深搜+剪枝)

    题目链接 Problem Description "连连看"相信很多人都玩过.没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子.如果某两个相同的棋子,可以 ...

  9. hdu 1175 连连看 DFS_字节跳动笔试原题

    转载至:https://www.cnblogs.com/LQBZ/p/4253962.html Problem Description "连连看"相信很多人都玩过.没玩过也没关系, ...

随机推荐

  1. linux教程:配置Tomcat开机启动

    我们在linux下安装好tomcat之后:经常是需要配置到开机启动的: 这样的话就不需要我们每次重启linux服务器之后自己在登陆运行startup.sh文件启动tomcat了 本次的演示环境是在ce ...

  2. KAFKA分布式消息系统[转]

    KAFKA分布式消息系统  转自:http://blog.chinaunix.net/uid-20196318-id-2420884.html Kafka[1]是linkedin用于日志处理的分布式消 ...

  3. CSS居中的方法总结

    [水平居中] 行内:text-align:center; 定宽块状:1.left:0 right:0然后用margin: auto外边距填充,水平方向不会发生外边距叠加;  2.绝对定位(父元素定位不 ...

  4. VisualStudio2013&VS2015内置SQLServer入门 (三)

    关于LocalDB的部署(publish): 使用本机做服务器(目测不可行) 双击项目的Properties-->Publish-->Application Files,你会发现没有.md ...

  5. Vijos1523 NOI2002 贪吃的九头龙 树形dp

    思路不算很难,但细节处理很麻烦 前面建图.多叉转二叉,以及确定dp处理序列的过程都是套路,dp的状态转移过程以注释的形式阐述 #include <cstdio> #include < ...

  6. yum安装ftp服务器

    1.安装vsftp,本文采用yum安装: #yum install vsftpd 2.安装后运行: # service vsftpd restart Shutting downvsftpd:      ...

  7. Linux on ASUS N550JK4700

    实际上,ASUS N550JK对Ubuntu 14.04的兼容性是相当好的,包括无线网卡.蓝牙.键盘背光的调节.触摸板的开关.音量的键盘调节都是安装后无需配置直接可以使用的,这是出乎意料的,因为这些功 ...

  8. 错误: 找不到或无法加载主类 scala.tools.nsc.MainGenericRunner

    错误: 找不到或无法加载主类 scala.tools.nsc.MainGenericRunner 原因: Sacala安装路径中包含空格.

  9. Spring MVC 教程,快速入门,深入分析(转载)

    作者:赵磊 博客:http://elf8848.iteye.com 下载: Spring的官方下载网址是:http://www.springsource.org/download    (本文使用是的 ...

  10. 对依赖倒置原则(DIP)及Ioc、DI、Ioc容器的一些理解(转)

    所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体.简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合 ...