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

本文探讨了几类特殊问题的解决策略,如最小找最大、最大找最小等,通过二分查找结合最短路算法求解。分析了并查集在特定条件下的局限性,以及如何针对不同类型的权重(边权、点权)调整算法实现。
4万+

被折叠的 条评论
为什么被折叠?



