【JZOJ100048】紧急撤离

JZOJ100048.【NOIP2017提高A组模拟7.14】紧急撤离

Time Limits: 1000 ms Memory Limits: 256 MB

Description
某日, 敌军对某村落展开攻击,所幸我情报部门提前预知了消息,村民兵武装连夜组织村民快速转移,为此他们需要赶往地道入口。已知村庄形成了 N * M 的方格网络,周围被封锁,无法穿行。其中有些方格没有敌军占领,可以进入,有些方格已经被敌军渗透,不能进入。由于敌军的步步紧逼,民众只能向行或列增大的地方移动:即(x, y) → (x + 1, y)或(x, y) → (x, y + 1)。 机智的 Star 手提笔记本,正和民兵队长商议对策。民兵队长会问你 Q 个问 题,每个问题均类似于坐标(a, b)的村民能否安全到达位于坐标(c, d)的地道(队长是机智的,他的问题总保证起点和终点均安全),你需要赶快写出程序来帮助他。

Input
第 1 行两个整数 N, M;
第 2 ~ n + 1 行给出一个 N * M 的 0/1 矩形(每行可看作一字符串),其中 0 表示安全,1 表示不安全,设第 i + 1 行第 j 列的位置坐标为(i, j)。
第 n + 2 行一个整数 Q;
接下来 Q 行每行四个整数 a、b、c、d,保证坐标合法。

Output
对于每组询问,输出一行“Safe”或“Dangerous”。

Sample Input

7 7
0100000
0000010
0001010
0011000
1000010
0000000
0111001
5
3 3 4 6
6 1 6 7
4 5 6 5
3 3 4 5
4 6 7 6

Sample Output

Dangerous
Safe
Safe
Dangerous
Dangerous 

Data Constraint
对于 20%的数据,n, m ≤ 50;
对于另外 20%的数据,n, m ≤ 200、q ≤ 1000;
对于 100%的数据,n, m ≤ 500、q ≤ 600000。


题目大意

给一个01矩阵,q个询问(x,y,X,Y)问是否能不经过1点只向下或右从(x,y)走到(X,Y)
样例:
SampleInput


解题思路

前20%数据:预处理所有(x,y)能到达的点,每个询问O(1)回答 O(n2m2+q)

接下来20%数据,对于每个询问直接暴力是否能到达, O(qnm)

100%:
我们想, (x,y) 能到达 (x1,y1) 的充分必要条件是:
S{ (x,y)|(x,y)(x

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值