势能相关做题记录

势能相关

P5905 【模板】全源最短路(Johnson)

题意:有负权情况下的全源最短路。

思路:Johnson 全源最短路可以在 \(O(nm\log m)\) 的复杂度内解决带有负权的全源最短路。

这个算法的巧妙之处在于为每个点赋予 势能 \(h_i\)。从一个点到另一个点,无论走什么路径,势能的变化量都是一定的。于是我们被每条边的边权改为 \(w_i+h_u-h_v\),然后先用 SPFA 求出 \(h\),这样每条边都是非负的,可以跑 \(n\) 遍 Dijkstra 来求解。

P1861 星之器

题意:有 \(n\times m\) 的网格,每次操作可以让每一行或者每一列的不相邻的两个格子,让这两个格子减一,让与这两个格子相邻且在中间的两个格子减一,每次操作的贡献是两个格子的距离,给出初始状态和末状态,求最大贡献。

思路:神题。

可以发现答案与操作的方式无关,只与初、末状态有关,于是可以想到用势能来刻画。

\(f(x,y)\)\((x,y)\) 的势能,那么总势能就是每个点势能的加和,而且 \(x,y\) 两维是独立的。

单独考虑 \(x\) 维。根据操作,有 \(f(x_1)+f(x_2)-f(x_1+1)-f(x_2-1)=x_2-x_1-1\),移项就是 \(f(x_1+1)-f(x_1)-(x_1+1)=f(x_2)-f(x_2-1)-x_2\),即 \(f(x-1)-f(x)-x\) 为定值,那么不妨就当做 0,这样推出来 \(f(x)=\dfrac{x^2+x}{2}\),于是 \(f(x,y)=\dfrac{x^2+x+y^2+y}{2}\),把所有的加起来就是答案。

posted @ 2024-02-14 09:57  Xttttr  阅读(7)  评论(0编辑  收藏  举报