随笔分类 - 倍增问题
摘要:#题意 #题解 首先可以想到二分答案(二分时间$mid$) 那么对答案有影响的路径就只有花费时间$>mid$的路径 考虑减少一条边,一定是在这些路径的公共部分的花费时间最大的一条边,记为A 如果$最大的路径-w[A]<=mid$,那么说明$mid$可行,否则不可行 如何记录哪些边是公共部分?考虑差分
阅读全文
摘要:#题意 #题解 首先想想删除边之后直径的变化,原直径的两个端点也一定是新直径的端点之一 再考虑删除边之后新的直径不好确定,把删边操作改成加边操作,这样新的直径一定在原来两棵树的直径的$4$个端点中选,总共$6$种情况 所以先处理出完整的树的相关信息,比如求$LCA$的$f,dis$数组,用来判断新的
阅读全文
摘要:#题意 #题解 可以很好地巩固倍增基础...(水题) 设计$sum[i][j],dis[i][j]$表示从$i$开始走了$2^j$步路径上的权值和/最小权值,初始值$sum[i][0]=dis[i][0]=w[i]$,转移过程和倍增的转移几乎完全一样 注意一下点是$0\thicksim n-1$ #
阅读全文
摘要:题意 题解 好题啊...可惜我做的时候就像嗑药了,打了乱七八糟一堆bug... 首先要看出最优路径一定是一个最大生成森林。 最大没得说,因为要尽量让权值大。 证明是森林:对于已经生成的一棵树(或者说森林),如果再加入一条非树边 $c->d$,那么原本树上 $c->d$ 的答案一定比新加入这条边的答案
阅读全文

浙公网安备 33010602011771号