distance Record

模拟赛被距离创烂了。

主要思路:将曼哈顿距离转为切比雪夫距离可以将 \(x,y\) 两维分开考虑。

曼哈顿转切比雪夫:\((x,y)\Rightarrow(x+y,x-y)\)

切比雪夫转曼哈顿:\((x,y)\Rightarrow(\frac{x+y}{2},\frac{x-y}{2})\)

11.22 T2

二维坐标有 \(n(n\le 50)\) 个点 \((x.y)\),所有点能移动到上下左右任意一格,问走 \(m\) 步后所有点在同一格方案数。

\(m,|x|,|y|\le 10^5\)

考虑把曼哈顿距离转化为切比雪夫距离,这样子就变成了 \((x,y)\) 同时 \((\pm 1,\pm 1)\),将 \((x,y)\) 分开考虑即可,时间复杂度 \(O(n|x|)\)

P3964

不难发现任意两点的距离为 \(\max(|x_1-x_2|,|y_1-y_2|)\),也就是这是一个切比雪夫坐标系,考虑转为曼哈顿坐标系,然后最后将距离除二就行。然后现在等价于在曼哈顿坐标系中选一个点使得所有点到这个点距离最小。这是个很naive的问题,将 \(x,y\) 分别考虑即可。

怎么全 WA 了,原来不能随便选点,还是一个naive的问题,对每个点做一次就行了。

P2906

转为切比雪夫距离,这样子任意两点约束取决于 \(x,y\),并查集做即可。

AT_code_festival_2017_quala_d

posted @ 2025-02-27 11:09  g1ove  阅读(34)  评论(0)    收藏  举报