克鲁斯卡尔
zhhx2001
这个作者很懒,什么都没留下…
展开
-
codevs1403(dp+克鲁斯卡尔)
判断是否处于灾害期那个地方,思路错了一下午,否则我的prim的做法虽然慢,但是就应该还可以过上7个点,结果wa了那么多 因为一个边的灾害期不一定就一次,我的做法虽然可以保证一次,但是多次无法处理 导致我还以为我 的prim错了呢, 不过练了对拍和代码能力 和bzoj那个套最短路的一个样 对了,一定要注意细节,不要以为他不会卡你细节!!!!,也许就是这细节决定你的成败,永远不要原创 2016-07-11 19:24:23 · 342 阅读 · 0 评论 -
bzoj1821(克鲁斯卡尔)
hzwer上的,知道是用克鲁斯卡尔,但是思路还是自己猜出来的 思路:感觉就是猜出来的, 因为所有的点集之间的距离是他们所含点对之间的最短距离,对于例题中的图,想像一下,在这几个点集之间相互连边 就是连最短的边,他们就会联通,实际上本题就是,把所有的点按最小距离连起来,找到最大的k-1条边,把他们删掉 ,其中这些边最小的距离就是所求的距离。 一共要插入n-1条边,找最大的k-1条边原创 2016-07-09 12:50:46 · 330 阅读 · 0 评论 -
bzoj3732(同货车运输,倍增lca+最小生成树)
双向边数组要开大一倍 #include #include #include #include #include using namespace std; const int maxn=20009; struct aa { int u,v,dis; bool operator <(const aa &b) const { return dis<b.dis; } }bian[maxn*原创 2016-07-21 15:21:52 · 500 阅读 · 0 评论 -
bzoj1601(MST+优秀建图==好题)
Farmer John已经决定把水灌到他的n(1 刚开始并没有想到是最小生成树,尽管曾经考虑过,但是感觉无法描述整个题目的所需决策。并没有多想。 实际上,就是每个水库要么选择自己这里建造水库,要么选择连一条边。 我们想如果所有的水库最终都选择好了一个决策的话,那么整个图就是,分成m块,每一块有一个点是自己建造水库的。其他都是顺着边连到这个点的。也就是在这个子图当中做最小生成树。这之后就原创 2016-09-09 18:54:52 · 899 阅读 · 0 评论 -
bzoj1083(MST)
其实就是求最小瓶颈生成树,中最大边权,根据性质可知,最小生成树本身就是一个最小瓶颈生成树。 还说,使整个图联通,还要求最少的边(这还用问,肯定是n-1条边) 这道题教会我们,题目会有用来迷惑人的信息,注意题目的本质是什么 #include #include #include #include using namespace std; struct aa { int to,from原创 2016-08-19 15:35:35 · 305 阅读 · 0 评论 -
bzoj2429(MST,最小瓶颈生成树)
就是一个最小生成树,实际上是最小瓶颈生成树 #include #include #include #include using namespace std; int n,m,t[505],tot; int x[1055],y[1055],fa[1055]; struct aa { int x,y; double dis; bool operator <(const aa &b) c原创 2016-08-19 19:49:28 · 515 阅读 · 0 评论