【最小生成树】

来源:互联网 发布:网络热点事件2017 编辑:程序博客网 时间:2024/04/30 09:47

最小生成树:Prim Kruskal次小生成树

HDU:

1102:最基础的MST



1233:基础题



1301:基础题



1863:基础题



2682:稍微改了改形式的MST



5253:类MST



2489:最小点权/最大边权生成树

看到题只能想到贪心的找,觉得这题好难,后来看了下范围,MD n<=15,直接枚举每个情况,每次跑一个MST就行



2598:要求MST使最小值和最大值差最小(枚举即可

★★


4786:边是白或黑,要求生成树的白边有Fib条

好TM难啊,没思路,原来是这么水的题,白边优先和黑边优先各找一遍,区间是否有Fib数即可



4081:次小生成树,可以打一打练练基本功

★★★


4750:查询每次询问符合要求的点对个数

要求是如果u->v的所有路径中最大值的最小值大于等于查询的值

离线处理,将边从小到大加,类似于Kruskal的思想,这样每次新加的边就是两点所代表的树的最大值,达到要求的数量就是左边树节点数乘右边树节点数

★★


4126:每次增加一条边,计算每次之后MST值,先Prim出最小生成树,可以发现,如果该边不在MST上,无影响,若果在MST上,增大此边后的MST相当于把这条边删边,分为两棵树,只要找到这两颗树最短的连接边建成新的MST即可,找新的边可以树形DP处理,DP【rt】【u】表示rt这个点到以u为根的树以及子树的最近距离

★★★★

1 0