AT_joisc2014_e.水筒
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
JOI 君所居住的 IOI 市以一年四季都十分炎热著称。
IOI 市被分成 H 行,每行包含 W 块区域。每个区域都是建筑物、原野、墙壁之一。
IOI 市有 P 个区域是建筑物,坐标分别为 (A1,B1),(A2,B2),…,(AP,BP)。
JOI 君只能进入建筑物与原野,而且每次只能走到相邻的区域中,且不能移动到市外。
JOI 君因为各种各样的事情,必须在各个建筑物之间往返。虽然建筑物中的冷气设备非常好,但原野上太阳非常毒辣,因此在原野上每走过一个区域都需要 1 升水。此外,原野上没有诸如自动售货机、饮水处之类的东西,因此 IOI 市的市民一般都携带水壶出行。大小为 x 的水壶最多可以装 x 升水,建筑物里有自来水可以将水壶装满。
由于携带大水壶是一件很困难的事情,因此 JOI 君决定携带尽量小的水壶移动。因此,为了随时能在建筑物之间移动,请你帮他写一个程序来计算最少需要多大的水壶。
现在给出 IOI 市的地图和 Q 个询问,第 i 个询问包含两个整数 Si,Ti,对于每个询问,请输出:要从建筑物 Si 移动到 Ti,至少需要多大的水壶?
H,W≤2000,P,Q≤2×105,1≤Si,Ti≤P。
输入格式
第一行四个空格分隔的整数 H,W,P,Q。
接下来 H 行,第 i 行有一个长度为 W 的字符串,每个字符都是 . 或 # 之一,. 表示这个位置是建筑物或原野,# 表示这个位置是墙壁。
接下来 P 行描述 IOI 市每个建筑物的位置,第 i 行有两个空格分隔的整数 Ai 和 Bi ,表示第 i 个建筑物的位置在第 Ai 行第 Bi 列。保证这个位置在地图中是 .。
接下来 Q 行,第 i 行有两个空格分隔的整数 Si,Ti。
输出格式
输出 Q 行,第 i 行一个整数,表示要从建筑物 Si 移动到 Ti,至少需要多大的水壶。
如果无法到达,输出 -1。如果不需要经过原野就能到达,输出 0。
输入输出样例
输入#1
5 5 4 4 ..... ..##. .#... ..#.. ..... 1 1 4 2 3 3 2 5 1 2 2 4 1 3 3 4
输出#1
3 4 4 2
输入#2
5 5 3 2 ...#. ..#.. #.... .##.. ...#. 1 3 5 2 1 5 1 2 1 3
输出#2
-1 7
说明/提示
H,W≤2000,P,Q≤2×105,1≤Si,Ti≤P。
输入解题思路,AI测评打分。不知道怎么写?