
最小生成树
huanzhizun
这个作者很懒,什么都没留下…
展开
-
最小生成树kruskal算法
#include#includeint par[1000];int boot(int a){ int p; if(par[a]==a) return a; return par[a]=boot(par[a]);}void pa(int a,int b){ int t,p; t=boot(a); p=boot(b);原创 2014-04-29 09:25:36 · 517 阅读 · 0 评论 -
并查集
#includeint par[1000];int boot(int a){ int p; if(par[a]==a) return a; return par[a]=boot(par[a]);}void pa(int a,int b){ int t,p; t=boot(a); p=boot(b); par[t]=原创 2014-04-29 09:26:56 · 502 阅读 · 0 评论 -
最小生成树prim算法
#include#include#include#define inf 1000000int par[1000],dis[1000][1000],vis[1000];int boot(int a){ int p; if(par[a]==a) return a; return par[a]=boot(par[a]);}void pa(int a原创 2014-04-29 09:24:44 · 610 阅读 · 0 评论 -
Codeforces Round #345 (Div. 1) E Clockwork Bomb
非常好的一道题首先很容易想到当你拆一条边后加边的次序是随意的然后我们可以这么想:如果在两个图中都存在的边没有任何意义,所以我们可以在结果图中先把相同边留下,把其他边删去,怎么弄呢,如果是一棵树就好办了,所以剩下就是把一堆树连起来。然后考虑开始的图,对于在结束图中不存在的边我们把它也删了,然后就是从当前节点出发有联通快,这些联通块在第二张图里面也存在,所以下面很简单了,我们只要把当前联通块的原创 2016-03-17 21:08:11 · 607 阅读 · 0 评论