Description

唐僧被妖怪关在迷宫中。孙悟空好不容易找到一张迷宫地图,并通过一个魔法门来到来到迷宫某个位置。假设迷宫是一个n*m的矩阵,它有两种地形,1表示平地,0表示沼泽,孙悟空只能停留在平地上。孙悟空目前的位置在坐标(sx,sy)处,他可以向上下左右四个方向移动。

请你帮助孙悟空计算一下,迷宫中是否存在一条路从他所在位置(sx,sy)到达唐僧所在位置(tx,ty)?
 
Input

输入第一行为一个整数t(0<t<=10),表示测试用例个数。

每个测试样例的第1行是2个正整数n (1≤n≤100),m (1≤n≤100),表示迷宫是n*m的矩阵。接下来的n行输入迷宫,每行有m个数字(0或者1),数字之间用一个空格间隔。
接下来的1行是4个整数sx,sy,tx,ty,1≤sx,tx≤n,1≤sy,ty≤m,表示孙悟空所在位置为第sx行第sy列,唐僧所在位置为第tx行第tx列。迷宫左上角编号是(1,1),右下角编号是(n, m)。
数据保证(sx,sy)格和(tx,ty)必定为平地。
 
Output

每个样例单独输出一行:1表示路径存在,0表示路径不存在。

 
Sample Input
 Copy sample input to clipboard
2
2 2
1 0
0 1
1 1 2 2
4 4
1 1 1 0
1 0 1 1
1 0 1 1
1 1 1 0
1 1 3 4
Sample Output
0
1 解题思路: 把矩阵遍历一遍,如果终点被遍历,则存在一条路
#include<iostream>
#include<queue>
#include<memory>
using namespace std; struct point
{
int x;
int y; point(int sx, int sy)
{
this->x=sx;
this->y=sy;
} point(){}
}; const int MAX = 105;
int n, m;
int edge[MAX][MAX];
bool isvisited[MAX][MAX];
queue<point>q; int dx[4]={0, 0, -1, 1};
int dy[4]={1, -1, 0, 0}; void BFS(int sx, int sy)
{
point temp, temp1;
q.push(point(sx, sy));
isvisited[sx][sy]=true; while(!q.empty())
{
temp=q.front();
q.pop(); for(int i=0;i<4;i++)
{
temp1.x=temp.x+dx[i];
temp1.y=temp.y+dy[i]; if(temp1.x>=1&&temp1.y>=1&&!isvisited[temp1.x][temp1.y]&&edge[temp1.x][temp1.y])
{
isvisited[temp1.x][temp1.y]=true;
q.push(temp1);
}
}
}
} int main()
{
int t;
cin>>t;
while(t-->0)
{
cin>>n>>m; memset(edge, 0, sizeof(edge));
memset(isvisited, false, sizeof(isvisited)); for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>edge[i][j];
} int sx, sy;
int tx, ty;
cin>>sx>>sy>>tx>>ty; BFS(sx, sy); if(isvisited[tx][ty])
cout<<1<<endl;
else cout<<0<<endl;
} return 0;
}

  


[SOJ] 无路可逃?的更多相关文章

  1. sicily 无路可逃?(图的DFS)

    题意:在矩阵数组中搜索两点是否可达 解法:DFS #include<iostream> #include<memory.h> using namespace std; stru ...

  2. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  3. 越狱Season 1-Episode 2: Allen

    Season 1, Episode 2: Allen [Previously, on Prison Break] previously: 以前(预先) 前情回顾 -Judge: I find it i ...

  4. grep命令参数和使用方法

    功能说明:查找符合串的条件的文件. 语言 法国:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  5. 那些H5用到的技术(4)——弹幕

    前言思路实现模式无限循环模式时间线模式停止显示弹幕 前言 以前玩卷轴射击游戏的时候,大量的BOSS子弹让我们无路可逃的时候,让我见识到了真正弹幕的威力,可自从A站B站火了之后,大量评论留言参与到了视频 ...

  6. 最难的工作 /// SPFA模板 oj1396

    题目大意: Input 第一行是一个整数T ( T ≤ 100 ),表示测试用例的个数. 每个测试用例的第一行是两个整数 n 和 m ( 1 ≤ n ≤ 200 , 0 ≤ m ≤ 10000 ),分 ...

  7. 本溪6397.7539(薇)xiaojie:本溪哪里有xiaomei

    本溪哪里有小姐服务大保健[微信:6397.7539倩儿小妹[本溪叫小姐服务√o服务微信:6397.7539倩儿小妹[本溪叫小姐服务][十微信:6397.7539倩儿小妹][本溪叫小姐包夜服务][十微信 ...

  8. 【Win 10应用开发】响应系统回退键的导航事件

    按例,老周今天要讲一个故事,这个故事之前老周在微博上分享过.大伙知道在8.1的时候,有一个扩展类库——NotificationExtensions,可以真TMD轻松生成通知XML模板,其实,这个类库也 ...

  9. 现在开始(Do It Now)

    现在开始(Do It Now) 很多年前读大学的时候,我决定制定一个计划挑战自己:只用三个学期完成其他人通常花费四年的课程,能否毕业.这篇文章(此文为翻译)详细的说明了我在成功实现该目标过程中的所有时 ...

随机推荐

  1. 圆形头像以及一些常见需求形状自定义ImageView组件

    在实际开发中,我们经常会遇到这样的需求,就是无论图片长啥样,我们都要其显示成圆形.圆形加一个边框.矩形加边框,带圆角的矩形等等,lib和demo下载地址:https://github.com/mapl ...

  2. 修改List报ConcurrentModificationException异常原因分析

    使用迭代器遍历List的时候修改List报ConcurrentModificationException异常原因分析 在使用Iterator来迭代遍历List的时候如果修改该List对象,则会报jav ...

  3. jquery mobile扁平化设计样式--Jquery mobile Flat UI介绍

    jquery mobile扁平化设计样式--Jquery mobile Flat UI介绍 这几天开发的web app使用了jquery mobile,jquery mobile自带的样式比较适合做企 ...

  4. C#基础知识回顾--线程传参

    C#基础知识回顾--线程传参 在不传递参数情况下,一般大家都使用ThreadStart代理来连接执行函数,ThreadStart委托接收的函数不能有参数, 也不能有返回值.如果希望传递参数给执行函数, ...

  5. Linux IO控制命令生成

    在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值.cmd除了可区别数字外,还包含有助于处理的几种相应信息. cmd的大小为 32位,共分 4 个 ...

  6. 使用MFC CImage类绘制PNG图片时遇到的问题

    为了测试CImage绘制PNG图片的效果,我们用截图软件截得一张360的界面,然后使用PhotoShop等工具在图片的周边加上了透明的区域,然后保存成PNG图片文件.CImage首先从文件中加载,即 ...

  7. 你可能把A/B测试做错了

    大卫奥格威说过,"永远不要停止试验,你的广告也就永远不会停止改进". 在当今的网络世界中,类似于吆喝科技 AppAdhoc A/B Testing 这样的工具越来越多,AB测试和转 ...

  8. 官网.jar包下载技巧

    最近在学Java,但是往往要用到好多jar包,只能从网上下载,但是网上找实在太费事了,而且有时候给我们带来了许多的不便.找不到jar包程序就运行不了,心里真不是个滋味.可是自己就是不甘心.经过我的不懈 ...

  9. 基于jQuery的ajax系列之用FormData实现页面无刷新上传

    接着上一篇ajax系列之用jQuery的ajax方法向服务器发出get和post请求写,这篇主要写如何利用ajax和FormData实现页面无刷新的文件上传效果,主要用到了jQuery的ajax()方 ...

  10. go CD 用虚拟机快速增加一个新agent

    背景 最近项目在用go CD做持续交付.为了最大化利用硬件,所有的agent都是用的vbox的虚拟机.随着pipelines的增加,就需要增加更多的agent. 步骤 为了快速增加新的agent,最简 ...