下面几道题分为两类:
- 最小找最大(还加了一些限制):HDU 2962,HDU 1839
最大找最小:CCF CSP 201703 4.地铁修建 - 路上的边权极值相差最小:HDU 1598
路上的点权极值相差最小:HDU 2363
这几道题都可以用二分限制最短路来求解,但不是都能用并查集来求解。需要输出最短路值(限制情况下),或者对最短路值有个上界,或者有向图,这些情况就都不能用并查集了。(使用并查集优先)
因为并查集只能判断无向图的连通性,算不了具体的最短路值(限制情况下)。而最短路算法,可以在限制情况下使用,而且本身的最短路值也具有判断连通性 / 可行性的作用。(通过限制下的最短路算法有没有解来判断当前限制的可行性)
对于第一种题,二分数组中的值是边权(从小到大或从大到小);而对于第二种题,二分数组中的值必须是差值(因为差值本来就是越小越优(满足l<r
),而且是连续的,所以其实直接就是对差值二分的,没再弄个数组装起来)。而且第二种题的限制多了一层枚举,更复杂了一些。
对于HDU 2363这个题来讲,因为它是点权,而且,作为无向图所以并不能把点权转化到边上(若是有向图的话本身还是没法用并查集),所以这个题是怎么都不能用并查集了(而且这个题还要输出最短路值)。