摘要:
然而就是状压DP。 具体来说,n个点中有k个关键点,选择一些边把它们连通。求最小边权和。 f[i][s]表示点i与s关键点连通时的最小代价,注意i可以不是关键点。 转移有两种,第一种是i不变,s变。枚举s的子集和补集即可。 第二种是s不变,i变。把第一种转移中的所有非INF的i加入队列跑SPFA。每 阅读全文
摘要:
以时间为下标建线段树,则持续[L, R]时间的一个事物就能被表示成logn段区间。 这样就避免删除只有插入。 例题: bzoj4644 经典傻逼题 每个点的点权为与它相连的边的权值异或和。求最大权点集即可。 线段树分治 + 线性基 + bitset。 1 #include <cstdio> 2 #i 阅读全文
摘要:
可并堆有一种黑科技是用线段树合并实现,还能可持久化,时间复杂度nlogn。 这里介绍左偏树。 d值表示走右边到叶子的距离。满足d[r] <= d[l] 写法上用rt维护根节点,类似线段树。 不要把两个merge写混淆了! 放一个模板。 namespace lt { int ls[N], rs[N], 阅读全文