Content

给定两个在二维平面上的网格 \(A(x_A,y_A)\) 和 \(B(x_B,y_B)\),另外,还有一个不可通过的网格 \(F(x_F,y_F)\)。你需要求出在不经过 \(F\) 的情况下,通过若干次上下左右的移动,从 \(A\) 走到 \(B\) 的最短路径长度。

数据范围:\(t\) 组数据,\(1\leqslant t\leqslant 10^4\),\(1\leqslant x_A,y_A,x_B,y_B,x_F,y_F\leqslant 1000\)。

Solution

我们不妨先抛开 \(F\) 不谈,先想想,如果直接问你从 \(A\) 走到 \(B\) 的最短路径的话,显然答案就是 \(|x_A-x_B|+|y_A-y_B|\)(顺便说一句,这种距离的表示就是著名的曼哈顿距离)。

然后我们再考虑一下,\(F\) 在什么情况下会影响到原来的答案呢?

如果 \(A,B\) 即不在同一行也不在同一列,那么显然,\(F\) 是并不会影响上面的答案的,因为这样我们可以任意选择转弯的位置以避开 \(F\) 点而不影响最终的最短路径长度。

如果 \(A,B\) 在同一行,即 \(x_A=x_B\),设 \(y_{\min}=\min\{y_A,y_B\}\),\(y_{\max}=\max\{y_A,y_B\}\)。此时的 \(F\) 如果 \(x_F=x_A=x_B\) 且 \(y_{\min}<y_F<y_{\max}\),那么我们需要绕过这个点,从而比原来的路径要多走 \(2\) 个单位的距离。否则 \(F\) 也不会影响最终的答案。

如果 \(A,B\) 在同一列,即 \(y_A=y_B\),设 \(x_{\min}=\min\{x_A,x_B\}\),\(x_{\max}=\max\{x_A,x_B\}\)。此时的 \(F\) 如果 \(y_F=y_A=y_B\) 且 \(x_{\min}<x_F<x_{\max}\),那么我们需要绕过这个点,从而比原来的路径要多走 \(2\) 个单位的距离。否则 \(F\) 也不会影响最终的答案。

那么这道题目就做完了。

Code


int main() {
MT {
int xa = Rint, ya = Rint, xb = Rint, yb = Rint, xf = Rint, yf = Rint;
if(xa == xb && xa == xf && yf >= min(ya, yb) && yf <= max(ya, yb)) println(abs(yb - ya) + 2);
else if(ya == yb && ya == yf && xf >= min(xa, xb) && xf <= max(xa, xb)) println(abs(xb - xa) + 2);
else println(abs(xb - xa) + abs(yb - ya));
}
return 0;
}

CF1547A Shortest Path with Obstacle 题解的更多相关文章

  1. Shortest Path(思维,dfs)

    Shortest Path  Accepts: 40  Submissions: 610  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: ...

  2. 【ZOJ2760】How Many Shortest Path

    How Many Shortest Path 标签: 网络流 描述 Given a weighted directed graph, we define the shortest path as th ...

  3. 【CF938G】Shortest Path Queries(线段树分治,并查集,线性基)

    [CF938G]Shortest Path Queries(线段树分治,并查集,线性基) 题面 CF 洛谷 题解 吼题啊. 对于每个边,我们用一个\(map\)维护它出现的时间, 发现询问单点,边的出 ...

  4. Codeforces Beta Round #3 A. Shortest path of the king 水题

    A. Shortest path of the king 题目连接: http://www.codeforces.com/contest/3/problem/A Description The kin ...

  5. HDU 5636 Shortest Path 暴力

    Shortest Path 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5636 Description There is a path graph ...

  6. HDU4725:The Shortest Path in Nya Graph(最短路)

    The Shortest Path in Nya Graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  7. CF938G Shortest Path Queries 和 CF576E Painting Edges

    这两道都用到了线段树分治和按秩合并可撤销并查集. Shortest Path Queries 给出一个连通带权无向图,边有边权,要求支持 q 个操作: x y d 在原图中加入一条 x 到 y 权值为 ...

  8. 1129. Shortest Path with Alternating Colors

    原题链接在这里:https://leetcode.com/problems/shortest-path-with-alternating-colors/ 题目: Consider a directed ...

  9. leetcode_1293. Shortest Path in a Grid with Obstacles Elimination_[dp动态规划]

    题目链接 Given a m * n grid, where each cell is either 0 (empty) or 1 (obstacle). In one step, you can m ...

随机推荐

  1. Java生产环境JVM设置成固定堆大小深层原理

    可能很多人都知道Java程序上生产后,运维人员都会设定好JVM的堆大小,而且还是把最大最小设置成一样的值.那究竟是为什么呢?一般而言,Java程序如果你不显示设定该值得话,会自动进行初始化设定. -X ...

  2. SpringSecurity过滤器原理

    SpringSecurity原理 主要过滤器链 SpringSecurity的功能主要是由一系列的过滤器链相互配合完成的.验证一个过滤器之后放行到下一个过滤器链,然后到最后. 认证流程 过滤器作用 S ...

  3. UOJ #76 -【UR #6】懒癌(思维题)

    UOJ 题面传送门 神仙题. orz czx,czxyyds 首先没有懒癌的狗肯定不会被枪毙,证明显然. 接下来考虑怎样计算一种局面的答案,假设 \(dp_S\) 表示对于有且仅有 \(S\) 中的狗 ...

  4. 决策单调性&wqs二分

    其实是一个还算 trivial 的知识点吧--早在 2019 年我就接触过了,然鹅当时由于没认真学并没有把自己学懂,故今复学之( 1. 决策单调性 引入:在求解 DP 问题的过程中我们常常遇到这样的问 ...

  5. Cycling City CF521E

    Cycling City 毒瘤题 首先建dfs树,由于是个无向图所有返祖边都是连向祖先的. 判是否有解其实很简单,只要图不是一个仙人掌就有解了. 仙人掌有关可以看这个博客 但是这道题由于要输出路径成功 ...

  6. Codeforces 585E - Present for Vitalik the Philatelist(简单莫反+狄利克雷前缀和)

    Codeforces 题目传送门 & 洛谷题目传送门 一道不算太难的 D1E 罢--虽然我不会做/kk u1s1 似乎这场 Div1 挺水的?F 就是个 AC 自动机板子还被评到了 3k2-- ...

  7. 一类巧妙利用利用失配树的序列DP

    I.导入 求长度为\(\text{len}\)的包含给定连续子串\(\text{T}\)的 0/1 串的个数.(\(|T|<=15\)) 通常来说这种题目应该立刻联想到状压 DP 与取反集--这 ...

  8. 有限元边界 Dirichlet 条件处理

    参考自百度文档,这里只考虑 Dirichlet 边界条件情况. 有限元法基本方法就是是构造线性方程组 \[\begin{equation} Au = f \end{equation}\] 进行求解.其 ...

  9. [R] read.table的check.names参数防止读入数据时列名前自动加上"X."

    最近用之前写的R脚本重新跑数据时,出现了报错.经检查,才发现是数据的列名读入R时发生了变化,列名前自动加上了X.符号. read.table系列函数有一个check.names参数,默认为 TRUE ...

  10. nginx负均

    Nginx负载均衡详解 上一篇中我说啦nginx有哪些中负载均衡算法.这一结我就给如果操作配置的给大家做详细说明下. 首先给大家说下upstream这个配置的,这个配置是写一组被代理的服务器地址,然后 ...