题解

128 条题解

  • 0
    @ 2008-10-22 22:11:45

    Kruskal..

    终止条件改为n-k.

    另外..

    没有No answer的数据..

  • 0
    @ 2008-10-21 15:45:03

    尴尬..一棵树一个糖.

    我还以为一片云一个糖.

  • 0
    @ 2008-10-12 10:24:04

    kruskal改个变量,直接ac

  • 0
    @ 2008-10-11 18:31:56

    啊啊啊啊并查缉写错了还被教主乱交乱改我的通过率啊啊啊还是一点没有下降太硬挺了

  • 0
    @ 2008-10-05 20:17:36

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    一次AC!爽,终结100道!

  • 0
    @ 2008-10-05 20:15:23

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 56ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:56ms

  • 0
    @ 2008-10-04 21:43:54

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    标准的KRUSKAL;

    只是终止条件用的是count

  • 0
    @ 2008-09-26 22:24:54

    orz Kruskal

    注意,只要找N-K个边就行,要记录一下

    function find(x:longint):longint;

    begin

    if f[x]=0 then exit(x);

    if f[f[x]]=0 then exit(f[x]);

    find:=find(f[x]);

    f[x]:=find;

    end;

    procedure union(i:longint);

    var q,p:longint;

    begin

    q:=find(a[i].v);

    p:=find(a[i].u);

    if pq then

    begin

    f[q]:=p;

    ans:=ans+a[i].dat;

    inc(count);

    end;

    end;

  • 0
    @ 2008-09-19 16:33:01

    有小数么?

  • 0
    @ 2008-09-17 17:55:38

    Kruskal...

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

  • 0
    @ 2008-09-11 22:11:31

    = = 一开始有N个集合,目的就是合并几个集合使剩下集合数=K

  • 0
    @ 2008-09-03 13:52:06

    并查集 oh,yeah...

  • 0
    @ 2008-08-14 20:48:52

    典型的克鹭鸶卡尔算法,QSORT和GETFATHER是基础

  • 0
    @ 2008-08-05 10:30:13

    就是求最小生成树。

  • 0
    @ 2008-07-25 11:44:10

    本来我看后七个点超时以为应该把压缩路径加上,但加上以后仍然超时,于是我惊异的发现,应该开10000的数组开成1000了。囧。

    目前是10个0ms

  • 0
    @ 2007-12-16 19:57:28

    快排 + kruskal + 并查集

    代码又短又快~~

  • 0
    @ 2007-11-12 08:23:32

    数据结构:并查集

    算法:改进Kruskal

    解析:根据Kruskal算法思想,图中的生成树在连完第n-1条边前,都是一个最小生成森林,每次贪心的选择两个不属于同一连通分量的树(如果连接一个连通分量,因为不会减少块数,那么就是不合算的)且用最“便宜”的边连起来,连接n-1次后就形成了一棵MST,n-2次就形成了一个两棵树的最小生成森林,n-3,……,n-k此后就形成了k颗树的最小生成森林,就是题目要求求解的。

  • 0
    @ 2007-11-05 16:57:29

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    快排加并查集

    Harry Potter教给我的。

  • 0
    @ 2007-10-31 23:56:05

    晕 第一次居然把块排写错了 rp出问题了

  • 0
    @ 2007-10-25 15:37:46

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

信息

ID
1234
难度
5
分类
树结构 | 生成树 点击显示
标签
递交数
3664
已通过
1131
通过率
31%
被复制
8
上传者