真心巧妙,不看题解准做不出(之前题解都看不懂QwQ)
这道题貌似有许多的做法,都不费,主席树的话不知道怎么搞,于是建了 $3$ 棵线段树,实测是不会炸的。
A weak OIer from HN-YZ
一道莫队……….
最主要的就是怎么从当前区间推到相邻区间。
假设当前区间为 $[l,r]$ ,目标区间为 $[l,r+1]$ 。那么很显然这样子就会增加:
这些区间,现在我们要做的就是尽快的算出这些区间的答案。
题目要求你做什么就做什么呗。
我们先跑最短路,然后按照最短路的边连网络流的边就好了。
这里我选择跑堆优 $Dij$ ,然后我们枚举每一条边,判断着一条边是否为最短路的边,判断的方式很显然,就是看这条边的起点的 $dis$ 加上边权是否等于终点的 $dis$ 就好。
题目大意就是,有多组询问,每组询问包含两个整数 $x,y$ ,求出 $x$ 到 $y$ 的一条路径,满足这条路径在所有的 $x$ 到 $y$ 的路径中,边权最小的边权值最大。
这个很显然我们可以先求出图的最大生成树,那么 $x$ 到 $y$ 的目标路径肯定在最大生成树上,也只能在最大生成树上。
这题真的是裸的网络流……连我这种制杖都可以立刻想到正解。
如果不考虑领地问题的话,这显然是一道很裸的最小割———割断最少的边使 $S$ 和 $T$ 不连通。
但是现在有了领地的问题……就是说限制了有些格子是一起的,不能被割开。
既然不能被割开,就连一条 $inf$ 的边啊,这样就割不开了啊。
神奇的珂朵莉树,优雅的暴力。
珂朵莉树的主要思想就是对于一段连续的值相同的区间,将其缩为一个结点,然后丢到 $set$ 里面,主要的操作有拆分区间操作…….这货很强大,码量不短但极好写,而且一般不会出什么问题,调试也很方便。