1、①树链剖分中的边权转点权,拆点
②网络流中的拆点
同:将1个点拆成1条边和一个点
异:权值不同:①中两点权都为原来的边权 ②中边的流量为1
目的不同:①中树链剖分维护点 ②中保证点只经过一次
以上说法不严谨,经学长指点修改如下:
②中目的可能为保证点只经过一次,例如:洛谷 1231 教辅的组成
树链剖分边权转点权不一定要拆点,拆点解法举例:poj 2763 Housewife Wind
也可以不拆点,将边权放到深一点的点上即可
2、倒序思想
题意:n的点m条边根据相连顺序,以1为根节点,从上面上挂下来。从1——t秒每秒断掉1条边,问每个点与1号点脱离的最早时间
这里将断边脱离转化为连边之后联通,采用按t——1秒的顺序插边。
因为两个点之间要断掉所有边才会脱离,脱离时间是最后一条边断掉的时间,所以倒着插入
LCT做法:固定弹飞点,从弹跳点向落地点连一条边,边的父亲指向落地点,这样建完树之后,根节点是弹飞点,自根节点往下是弹跳的逆过程
这样做的好处是,在查询的时候,直接将弹飞点调整为整棵树的根,再access(起跳点),不用判断什么时候会弹飞
3、网络流点的合并
网络流构图也要注意灵活性
当点许多时,我们可以考虑点的合并
①、poj 1149 PIGShttp://poj.org/problem?id=1149
规律 3. 如果从点 u 到点 v 有一条容量为 +∞ 的边,并且 u 是 v 的唯一流量来源,或者 v 是 u 的唯一流量去向,则可以把 u 和 v 合并成一个节点。