--------图论--------
Fizzmy
这个作者很懒,什么都没留下…
展开
-
CF888G&牛客多校第五场B-异或最小生成树
先看CF的这道题:题意:传送门有n个点,每个点有一个权值aia_iai,任意两点之间边的权值是这两点权值的异或和,求最小生成树n≤2e5,ai<230n \leq 2e5, a_i< 2^{30}n≤2e5,ai<230Solution:首先需要先介绍一种叫做Boruvka的最小生成树算法,算法流程类似Kruskal,对于每个连通块,在他和其他连通块之间找一个最小的边相连,因为每次都会合并一半的连通块,所以复杂度为O(mlogn)O(m \log n)O(mlogn)那原创 2020-07-26 19:11:42 · 349 阅读 · 1 评论 -
bzoj2427-tarjan+树形dp+背包
传送门 一道练习综合代码能力的好题 先把被依赖的点连向依赖这个点的点,再tarjan缩点,缩点后会形成多棵树,对每棵树进行dp,最后进行一次背包即可,注意要倒着枚举。 代码:#include<cstdio>#include<iostream>#include<cstring>using namespace std;struct wp{ ...原创 2017-11-17 16:13:20 · 283 阅读 · 0 评论