随笔分类 -  图论——生成树

posted @ 2019-08-18 20:23 wxyww 阅读(180) 评论(0) 推荐(0) 编辑
摘要:"题目链接" problem 给出n个点,每个点有权值,求最小生成树。定义一条边的代价为所连接两点的权值异或值。 solution 考虑分治,根据最高位为0还是1分为两部分。然后分别求最小生成树。合并的时候就将最高位为0的一部分插入到trie中,然后从最高位为1的一部分中查询。 注意对trie的清空 阅读全文
posted @ 2019-01-21 17:18 wxyww 阅读(265) 评论(0) 推荐(0) 编辑
摘要:题目链接 Boruvka生成树算法 $Boruvka$算法就是先把每个点看作一个联通块,然后不断在联通块之间找最优的边进行合并。因为每次联通块的数量最少缩小一半。所以合并次数是$log$的 先把所有的点权挂到$trie$树上。然后对于每个联通块进行合并的时候。对于联通块中的每个点都去$trie$上搜 阅读全文
posted @ 2018-10-15 14:30 wxyww 阅读(542) 评论(0) 推荐(0) 编辑
摘要:prufer序列 每个prufer序列对应一棵唯一的树。 生成:得到一棵树的prufer序列的方法是依次去掉编号最小的叶子节点(也就是度数为1的点),然后将这个点的父亲加入队列。直到剩下最后两个点。这样就可以得到一个长度为n的prufer序列。 根据prufer序列的生成方式可以得到:每个节点会在p 阅读全文
posted @ 2018-08-21 09:45 wxyww 阅读(197) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 题意: 其实题目的意思就是问从x到y权值最小的路的权值最大能是多少。 思路: 首先可以先把这张图变成一棵树。因为那些更小的点肯定是不跑更优秀,而且题目没有要求路程,所以生成一棵树,只要能保证在同一个图里面的点能够连通即可。又因为他要使最小权值最大,所以可以只留下那些权值更大的边。所以跑 阅读全文
posted @ 2018-05-01 21:24 wxyww 阅读(323) 评论(0) 推荐(0) 编辑
摘要:灌溉 【问题描述】 Farmer John 有𝑛个牧场,他希望灌溉他的所有牧场。牧场编号为1 ∼ 𝑛,要灌溉一个牧场有两种方式,一个是直接在这个牧场建设一个小型水库,另一个是从别的牧场向这个牧场引水。在第𝑖个牧场建立小型水库需要𝑊%美元,而从第𝑖 个 牧场向第𝑗个牧场引水需要𝑃%,<美 阅读全文

点击右上角即可分享
微信分享提示