浅谈一类边权带指数的图论问题
偶然看到了 这道题,求的是边权为
1|0CF464E The Classic Problem
题意:给一个无向图,每条边的边权是
思路:首先,我们可以把距离看成一个二进制数,那么我们需要能支持快速比较两个二进制数,二进制数在某一位 +1,把一个二进制数赋成另一个二进制数的数据结构。
因为有最后一个操作,好像只有可持久化的数据结构支持这一点,于是考虑用主席树来维护。
对于第一个操作,需要维护每个区间的哈希值,比较时找出两个二进制数的 lcp 就可以比较大小。
对于第二个操作,需要能查一个位置后面第一个是 0 的位置和区间清零,前者可以用主席树上二分,后者可以直接把一个空的主席树复制过来。
接下来的部分就比较简单了。直接用 dijkstra,每个点维护一棵主席树,松弛边
2|0[PA2019] Podatki drogowe
题意:有一棵树,每条边的边权为
思路:因为边权是
首先,肯定要二分答案,但是值域太大不好直接二分,但是一共只有
然后就是怎么判断一条路径在路径集合中的排名。
处理树上路径一般采用点/边分治,这道题用边分治更好处理,于是可以先用边分治处理处所有一半的路径,然后排序,二分判段时双指针计算答案即可。
如何维护每条路径的系数和比较大小呢?和上一题一样,可以把边权看成一个
其实这类问题思维量算是紫题的水平,但是困难点就在于代码实现,比如第二题代码长度达到了 6.6k。
__EOF__

本文链接:https://www.cnblogs.com/Xttttr/p/17899900.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】