题解

120 条题解

  • 0
    @ 2008-10-16 22:03:34

    破机器,搞得我那么慢。

    最小环。floyed。很好。

  • 0
    @ 2008-10-14 19:37:38

    编译通过...

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

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

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

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

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

    ├ 测试数据 06:答案错误...程序输出比正确答案长

    ├ 测试数据 07:答案错误...程序输出比正确答案长

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

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

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

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

    Unaccepted 有效得分:80 有效耗时:0ms

    ??

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    我的两次提交没什么区别'啊,只是初值赋的不同

    原来是FILLCHAR(D,SIZEOF(D),$2F);

    后来是赋10000000;

    这>.......好象$2F比10000000大啊!!!

  • 0
    @ 2008-10-13 20:08:12

    我很纳闷为什么用seekeof就不能过第二个点....

    注意一定要用eof..

    否则第二个点死活过不了..

    因为这个交了3个.

    Floyed求最小环.

    总共9ms AC.

  • 0
    @ 2008-10-06 15:26:19

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    感谢fjxmlhx的主要思路

  • 0
    @ 2008-10-01 16:58:17

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    我也是floyed求最小环

    为什么运行时间那么长,有什么优化吗?

  • 0
    @ 2008-09-16 10:45:01

    细节处理上有点问题,多了几个ms...

    用Floyd求最小环即可.

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-11-11 21:12:58

    No solution.少加个点害我交了3遍

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    floyed大体算法同fjxmlhx

    第2,3重循环 只需要到k-1即可

  • 0
    @ 2008-09-11 17:06:59

    我用的是dijkstra哈~

    居然一时没想起来floyd。。

    虽然很慢,但至少还是过了~

  • 0
    @ 2008-09-08 12:38:49

    朴素算法

    令e(u,v)表示u和v之间的连边,再令min(u,v)表示,删除u和v之间的连边之后,u和v之间的最短路

    最小环则是min(u,v) + e(u,v)

    时间复杂度是EV2

    改进算法

    在floyd的同时,顺便算出最小环

    g[i][j]=i,j之间的边长

    dist:=g;

    for k:=1 to n do

    begin

    for i:=1 to n do

    for j:=i+1 to n do

    answer:=min(answer,dist[i][j]+g[i][k]+g[k][j]);

    for i:=1 to n do

    for j:=1 to n do

    dist[i][j]:=min(dist[i][j],dist[i][k]+dist[k][j]);

    end;

  • 0
    @ 2008-08-27 13:43:26

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-08-27 13:36:56

    var

    dist,g:array[1..100,1..100] of longint;

    min,x,y,z,n,m,i,j,k:longint;

    begin

    while not eof do

    begin

    readln(n,m);

    for i:=1 to n do

    for j:=1 to n do

    dist:=10000000;

    for i:=1 to m do

    begin

    readln(x,y,z);

    dist[x,y]:=z;

    dist[y,x]:=z;

    end;

    g:=dist;

    min:=10000000;

    for k:=1 to n do

    begin

    for i:=1 to k-1 do

    for j:=i+1 to k-1 do

    if (g+dist+dist[k,j]g+g[k,j]) then g:=g+g[k,j];

    end;

    if min=10000000 then write('No solution.')

    else write(min);

    end;

    end.

  • 0
    @ 2008-08-26 20:09:48

    FLOYED最小环··

    很好做

    改进后的floyed

    编译通过...

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-08-15 13:37:02

    Floyd改进求最小环

    ...

    最好不要写min函数,用if...否则会TLE

  • 0
    @ 2008-08-12 03:13:16

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    有点慢..但还是AC了.

    PS:最小环问题.

  • 0
    @ 2008-08-02 22:25:02

    c++的确慢

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    但ms用scanf 要快些

    流太慢

  • 0
    @ 2008-07-21 16:06:27

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    floyd

    C++速度太慢,没办法,改成dijkstra可能都要超

  • 0
    @ 2007-12-19 13:45:12

    谁能告诉我...

    第一个数据是什么啊...

    为什么会216啊..?

  • 0
    @ 2007-11-11 11:08:08

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    floyd

    !!!!!!!!!!!!---|-k,i,j范围必须是 声中---|-!!!!!!!!!!

  • 0
    @ 2007-11-09 14:10:44

    总结得出很关键性的一点:

    VIJOS上千万不能用SEEKEOF!!!!!

  • 0
    @ 2007-10-31 18:07:34

    求最小环.

    再次提醒后来的各位

    一定要用eof

    一定要用readln

    以上两点害我交了6次还没查出错来

信息

ID
1046
难度
6
分类
图结构 | 最短路 点击显示
标签
(无)
递交数
4756
已通过
1265
通过率
27%
被复制
11
上传者