克鲁斯卡尔的核心是,给边排序。选出每两个点的最短路径。直到图连通,需要n-1条边。 ...
                            
                            
                                分类:
其他好文   时间:
2017-10-19 17:39:19   
                                阅读次数:
214
                             
                    
                        
                            
                            
                                首先总结一下概念: 什么是最小生成树呢? 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。 个人认为kruskal算法还是比较优秀的。 所以此篇重点讨论k ...
                            
                            
                                分类:
编程语言   时间:
2017-10-07 12:34:51   
                                阅读次数:
248
                             
                    
                        
                            
                            
                                    题目链接 倍增LCA是个什么蛇皮原理啊,循环完了还得再往上跳一次才能到最近公共祖先 合着我昨天WA两次就是因为这个 建最大生成森林,因为图不一定是联通的,所以不一定是一棵树。这个地方用克鲁斯卡尔就好了 然后给这个森林跑一遍DFS,顺便倍增 然后对于每个询问跑LCA,倍增的时候已经顺便求出了最小边权, ...
                            
                            
                                分类:
其他好文   时间:
2017-09-28 10:07:02   
                                阅读次数:
133
                             
                    
                        
                            
                            
                                    原题链接:https://www.luogu.org/problem/show?pid=1396 刚一看到这个题,马上就想起来前几天刚做的货车运输,于是迅速地敲了个最小生成树+lca求路径上最长边,写完后一看标签和难度,咦,为什么没有lca的标签啊,为什么这个题的难度只有普及/提高减啊,这个不是和货 ...
                            
                            
                                分类:
其他好文   时间:
2017-09-23 23:17:56   
                                阅读次数:
363
                             
                    
                        
                            
                            
                                这次我们来搞一个很新奇的知识点:克鲁斯卡尔重构树。它也是一种图,是克鲁斯卡尔算法求最小生成树的升级版首先看下面一个问题:BZOJ3545 Peaks。 在Bytemountains有N座山峰,每座山峰有他的高度h_i。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走 ...
                            
                            
                                分类:
其他好文   时间:
2017-08-02 20:22:37   
                                阅读次数:
245
                             
                    
                        
                            
                            
                                    T1:“疲劳”传说 炉石传说:魔兽英雄传是一款由暴雪开发的非常流行的游戏。这个问题建立在这个游戏的基础上,但是即使你不知道这个游戏,你也能非常轻松的解决这个问题。 每一局游戏是两个对手1v1的比赛。炉石传说的游戏方式是回合制,每个玩家轮流打出自己手中的牌。 每个玩家可以选择一个“英雄”,一个魔兽争霸 ...
                            
                            
                                分类:
其他好文   时间:
2017-07-27 21:26:48   
                                阅读次数:
196
                             
                    
                        
                            
                            
                                    1 //克鲁斯卡尔 2 #include 3 #include 4 using namespace std; 5 const int maxn = 10005; 6 struct node 7 { 8 int begin, end, len; 9 }cun[maxn]; 10 int n, fa[m... ...
                            
                            
                                分类:
其他好文   时间:
2017-07-23 19:56:39   
                                阅读次数:
170
                             
                    
                        
                            
                            
                                    最小生成树概念: 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。 最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。最小生成树其实是最小权重生成树的简称。 prim: 概念:普里姆算法(Prim算法), ...
                            
                            
                                分类:
其他好文   时间:
2017-07-23 09:57:30   
                                阅读次数:
159
                             
                    
                        
                            
                            
                                HDU Rank of Tetris 题目:http://acm.hdu.edu.cn/showproblem.php?pid=1811 题意:中文问题就不解释题意了。 这道题其实就是一个拓扑排序判圈,我的博客里面其他几篇拓扑排序判圈的套路一样。但是这道题与他们不同的的是在大小关系里面存在一种 “= ...
                            
                            
                                分类:
编程语言   时间:
2017-07-22 12:05:33   
                                阅读次数:
124
                             
                    
                        
                            
                            
                                    1 //克鲁斯卡尔(最小生成树) 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int maxn = 100005; 8 int n, t; 9 struct node 10 { 11 int bagin, end... ...
                            
                            
                                分类:
其他好文   时间:
2017-07-21 22:05:47   
                                阅读次数:
140