HDUOJ----(1175)连连看
连连看
Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14847 Accepted Submission(s): 3880
#include<cstdio>
#include<cstdlib>
#include<deque>
#include<iostream>
#define maxn 1003
using namespace std;
int map[maxn][maxn];
int hash[maxn][maxn];
unsigned int dir[][]={{,},{,},{,-},{-,}};
int n,m;
struct node
{
int x,y;
int step,tag;
}start,end;
void save_map()
{
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
scanf("%d",&map[i][j]);
}
}
} void bfs()
{
int i;
deque<node>q;
node q1,q2;
q.push_back(start);
for( i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
hash[i][j]=;
} }
while(!q.empty())
{
q1=q.front ();
q.pop_front();
for(i=;i<;i++)
{
q2.x=q1.x+dir[i][];
q2.y=q1.y+dir[i][];
q2.step=q1.step;
q2.tag=q1.tag;
if(q2.tag!=i)
{
q2.step++;
q2.tag=i;
}
if(q2.x==end.x&&q2.y==end.y&&q2.step<=)
{
printf("YES\n");
return ;
} if(q2.step<&&q2.x>&&q2.x<=n&&q2.y>&&q2.y<=m&&map[q2.x][q2.y]==)
{
if(hash[q2.x][q2.y]>=q2.step)
{
q.push_back(q2);
hash[q2.x][q2.y]=q2.step;
}
} }
}
printf("NO\n");
} int main()
{
int t,i;
while(scanf("%d%d",&n,&m),n+m)
{
save_map();
scanf("%d",&t);
for(i=;i<t;i++)
{
scanf("%d %d %d %d",&start.x,&start.y,&end.x,&end.y);
start.step=-;
start.tag=-;
if(map[start.x][start.y]==map[end.x][end.y]&&map[start.x][start.y]!=)
bfs();
else
printf("NO\n");
}
}
return ;
}
HDUOJ----(1175)连连看的更多相关文章
- HDU 1175 连连看(超级经典的bfs之一)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1175 连连看 Time Limit: 20000/10000 MS (Java/Others) ...
- HDU 1175 连连看
连连看 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- hdu - 1728逃离迷宫 && hdu - 1175 连连看 (普通bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=1728 这两道题花了一下午的时候调试,因为以前做过类似的题,但是判断方向的方法是错的,一直没发现啊,真无语. 每个 ...
- HDU 1175 连连看(BFS)
连连看 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- hdu 1175 连连看 DFS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1175 解题思路:从出发点开始DFS.出发点与终点中间只能通过0相连,或者直接相连,判断能否找出这样的路 ...
- Hdu 1175 连连看(DFS)
Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1175 因为题目只问能不能搜到,没问最少要几个弯才能搜到,所以我采取了DFS. 因为与Hdu ...
- HUD 1175 连连看
连连看 Time Limit : 20000/10000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submiss ...
- HDU 1175 连连看 (深搜+剪枝)
题目链接 Problem Description "连连看"相信很多人都玩过.没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子.如果某两个相同的棋子,可以 ...
- hdu 1175 连连看 (深搜)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1175 题目大意:如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子)这样的两个棋子可以 ...
- HDU - 1175 连连看 【DFS】【BFS】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1175 思路 这种题一想到就用搜索, 但是内存是32m 用 bfs 会不会MLE 没错 第一次 BFS的 ...
随机推荐
- Android之获取sdcard卡的信息
public static SDCardInfo getSDCardInfo() { String sDcString = android.os.Environment.getExternalStor ...
- google protocol buffer的原理和使用(二)
本文主要会介绍怎么使用Google Protocol的Lib来序列化我们的数据,方法非常多种,本文仅仅介绍当中的三种.其它的方法读者能够通过自行研究摸索.但总的来说,序列化数据总的来说分为下面俩步: ...
- applicationContext.xml中的使用${}是代表什么意思?
在applicationContext.xml文件中,使用 ${xxx} 表示的是:调用某个变量,该变量的名称就是{xxx}里面的"xxx". 例如:在applicationC ...
- [转]局域网共享一键修复 18.5.8 https://zhuanlan.zhihu.com/p/24178142
@echo offcolor 2fmode con cols=50 lines=30title OKShare [制作:wnsdt]ver | findstr "6.">nu ...
- iOS开发-Quartz2D初识
Quartz2D如果单独的从Quartz,那么会发现Quartz是一个开源的Java作业调度框架,单独从英文翻译的角度来看的话Quartz的英文是石英,如果有的时候不小心搜索会发现手表推荐.本文中介绍 ...
- ASM下裸设备的路径更改是否会影响数据库的执行
通过asm来存储数据库文件,在linux下能够通过asmlib的方式来管理块设备,也能够直接使用裸设备来建立asm磁盘.在asmlib方式下,磁盘设备启动顺序和名称的改变不会影响到asm的使用.但假设 ...
- Oracle Agile PLM Web Services 的实现
Oracle 的产品Agile PLM内置了许多Web Services,其他系统可以通过Web Servcies实现对Agile PLM系统资源的访问.快速学会使用的方法,是去Oracle的官网下载 ...
- 设置网站expires和max-age属性
转:http://www.zicheng.net/article/982022.htm 在使用百度站长工具测试网站优化建议时,在 设置静态内容缓存时间 栏目里,会提示 类似 FAILED - (未设置 ...
- java web过滤器实际应用(解决中文乱码 html标签转义功能 敏感字符过滤功能)
转载地址:http://www.cnblogs.com/xdp-gacl/p/3952405.html 在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可 ...
- java实现内部排序算法
冒泡排序 public class BubbleSort{ public static int[] asc(int[] a){ int item; for (int i = 0; i < a.l ...