最短路:从入门到劝退

最短路:从入门到劝退

题目#1 路径代价为 e1+max(e1,e2)+max(e2,e3)......max(ei1,ei),ei ,最短路。

显然可以对选边的状态连边。


题目#2 任意两点距离为x、y坐标差的较小值,最短路。

分别对x、y轴进行连边,任意点之间要走的话最短路算法肯定是自动走短的边。


清华军训yjq送西瓜题

任意两个点之间距离为权值与起来的lowbit,最短路。

啊啊啊啊啊啊啊啊我本来想出了正确算法但是hack掉了然后以为正解更优美然后就没有说啊啊啊啊啊啊啊啊!!!!!!!!虽然我上不了清华!!!!!!但是yjq送西瓜!!!!!!啊啊啊啊啊啊!!!!!
(首先屏蔽掉为0的边)

对于任意某一位为1的点,向一个(代表这一位的)虚点连一条权值为这个位/2的边。

这个算法无法处理边权为0的情况,我指出这个问题后成功让yjq~~陷入沉默然后直接改题面啊哈哈哈哈哈我真强啊哈哈哈哈哈


树上第k大联通块

利用类似bzoj1001的思路k短路


k短路:

首先获得一个最短路树,然后考虑每条非最短路树边替换进当前路径能造成的影响,然后一次获得比当前路径更不优的短路。

删边使最短路最长

首先这个边肯定在最短路径上,然后对于所有点统计出这个点向前、向后第一次归到最短路径上是什么时候,然后

法一 在最短路径(任意一条)上分治
法二 对于每一条非最短路径边考虑这条边连接的两个点,设这两个点到源/汇的最优路径与最短路分别交与a、b,对于所有最短路上a到b的边,刷心删这些边剩下的最大值,最后删掉删掉后剩下最大的。

每个点可以连向后面一些点

线段树优化建图

你可能感兴趣的:(各类笔记,各类总结)