USACO 20 Springboards 题解

题意:在二维直角坐标系上从 \((0,0)\) 走到 \((n,n)\) ,规定只能向右或者向上走。现在有 \(p\) 个传送阵,每个传送阵有4个参数 \(x_1,y_1,x_2,y_2\) ,表示如果使用该传送阵,可以从 \((x_1,y_1)\) 传送到 \((x_2,y_2)\) ,规定 \(x_1\leq x_2, y_1\leq y_2\)。询问最少要走多少距离(曼哈顿距离)才能到达 \((n,n)\) 。数据范围:\(n\leq 10^9, p\leq 10^5\)

首先考虑 \(O(p^2)\) 裸dp。显然有对于第 \(i\) 个传送阵,到达该点的传送地点最少距离 \(f_i\)\(min(f_j+dis(i,j))\) ,其中 \(dis(x,y)\) 表示第 \(y\) 个传送阵到达第 \(x\) 个传送阵的起始地点的最短距离(或者终点也行)。 答案为 \(min(f_i+dis((n,n) ,i))\) (终点到每个传送阵结束地点的最短距离)。
这很不优美。有正难则反的思想。设 \(f(x,y)\) 表示 走到 \((x,y)\) 。我们需要维护 \(x_1\leq x_2,y_1 \leq y_2\) 的最大的 \(f(x_1,y_1)\) 。即二维偏序问题。树状数组或者弱化cdq都能过。最后答案即为 \(2n-f(n,n)\)

posted @ 2021-05-17 17:30  Van-Helsing  阅读(57)  评论(0)    收藏  举报