131 条题解

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

    #include

    #define INF 20000000

    #define maxn 100

    long n,m,p;

    long map[maxn+10][maxn+10];

    int main()

    {

    long i,j,k,a,b,o,cnt;

    scanf("%ld%ld",&n,&m);

    for(i=1;i

  • 0
    @ 2008-11-04 21:28:39

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    下面的那个LG-lee就是个毛啊 直接是个毛啊........

  • 0
    @ 2008-11-04 18:54:46

    这是什么题阿! 水…………

    敲错了都能过,

  • 0
    @ 2008-11-04 13:23:59

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    不用那么麻烦,超简单算法!!!!!!

    var a:array[1..100,1..100] of longint;

    t1,t2,i,j,k,n,m,p,t:longint;

    begin

    readln(n,m);

    for i:=1 to n do

    for j:=1 to n do

    a:=10000;

    for i:=1 to m do

    begin

    readln(t1,t2);

    a[t1,t2]:=1;

    a[t2,t1]:=1

    end;

    for k:=1 to n do

    for i:=1 to n do

    for j:=1 to n do

    if (a>a+a[k,j]) then a:=a+a[k,j];

    readln(p);

    for i:=1 to p do

    begin

    readln(t1,t2);

    t:=0;

    for j:=1 to n do

    if a[t1,j]+a[j,t2]=a[t1,t2] then inc(t);

    inc(t,2);

    writeln(t)

    end

    end.

  • 0
    @ 2008-11-03 20:01:11

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    考察对FLOYD的了解和对动态规划的理解。

    恩恩,简单

  • 0
    @ 2008-11-01 19:59:15

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var i,j,k,n,t1,t2,m,ans:longint;

    a:array[0..100,0..100]of longint;

    p:array[0..100,0..100,0..100]of longint;

    v:array[0..100]of boolean;

    procedure pre(i,j:longint);

    var k:longint;

    begin

    for k:=1 to p do

    begin

    if not v[p] then begin inc(ans);v[p]:=true;end;

    pre(i,p);

    pre(p,j);

    end;

    end;

    begin

    readln(n,m);

    for i:=1 to m do begin readln(t1,t2);a[t1,t2]:=1;a[t2,t1]:=1;end;

    for k:=1 to n do

    for i:=1 to n do if(a>0)and(ik) then

    for j:=1 to n do if(a[j,k]>0)and(jk)and(ij) then

    begin

    if(a=0)or(a>a+a[k,j])then

    begin

    a:=a+a[k,j];

    fillchar(p,sizeof(p),0);

    p:=1;p:=k;

    end;

    if (a=a+a[k,j])and(kp[i,j,p]) then

    begin

    inc(p);

    p[i,j,p]:=k;

    end;

    end;

    readln(m);

    for i:=1 to m do

    begin

    readln(t1,t2);ans:=2;

    fillchar(v,sizeof(v),false);

    v[t1]:=true;v[t2]:=true;

    pre(t1,t2);

    writeln(ans);

    end;

    end.

  • 0
    @ 2008-10-30 21:51:15

    我n^4的算法竟然秒杀...

  • 0
    @ 2008-10-23 15:01:00

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    弗洛伊德+宽搜

    var i,j,k,l,m,n,p,q,t,ans:longint;

    a:array[1..100,1..100] of longint;

    road,step,last:array[1..100000] of longint;

    sel:array[1..100] of boolean;

    procedure sc(x:longint);

    var g,t:longint;

    begin

    sel[road[x]]:=true;

    if last[x]=0 then exit;

    sc(last[x]);

    end;

    begin

    read(n,m);

    for i:=1 to n do

    for j:=1 to n do

    a:=1000;

    for i:=1 to m do

    begin

    read(k,l);

    a[k,l]:=1;

    a[l,k]:=1;

    end;

    for k:=1 to n do

    for i:=1 to n do

    for j:=1 to n do

    if (a>0) and (a[k,j]>0) then

    if a+a[k,j]

  • 0
    @ 2008-10-18 20:08:07

    用dijkstra为什么过不了??????

  • 0
    @ 2008-10-16 23:01:03

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    O(n^3)的floyed算法+统计。。。

  • 0
    @ 2008-10-13 15:07:52

    floyd

    program p1446;

    var n,m:integer;

    a:array[1..100,1..100]of 0..1;

    dist:array[1..5000,1..2]of integer;

    x,y,p,t:integer;

    ans:longint;

    i,j,k:integer;

    begin

    assign(input,'p.in');reset(input);

    assign(output,'p.out');rewrite(output);

    readln(n,m);

    for i:=1 to m do

    begin

    readln(x,y);

    a[x,y]:=1;

    a[y,x]:=1;

    end;

    readln(p);

    for i:=1 to p do

    begin

    readln(dist,dist);

    end;

    for k:=1 to n do

    for i:=1 to n do

    for j:=1 to n do

    begin

    if (a0)and(jk)and(ij) then begin

    if (a0)and(a[k,j]0)and (a>a+a[k,j]) then a:=a+a[k,j];end

    else if (a=0)and(ij)and(jK)and(a0)and(a[k,j]0) then a:=a+a[k,j];

    end;

    for i:=1 to p do

    begin

    ans:=0;

    if dist>dist then

    begin

    t:=dist ;

    dist:=dist;

    dist:=t;

    end;

    for j:=1 to n do

    begin

    if a[dist,dist]=a[dist,j]+a[j,dist] then ans:=ans+1;

    end;

    writeln(ans);

    end;

    close(input);

    close(output);

    end.

  • 0
    @ 2008-10-12 18:53:17

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    floyd!!

  • 0
    @ 2008-10-09 20:54:59

    第390通过

  • 0
    @ 2008-10-06 22:17:46

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    直接Floyd,Floyd同时改字符串即可,

    a

  • 0
    @ 2008-10-06 21:43:41

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    #include

    main(){

    int i,j,k;

    int n,m;

    int x,y;

    int map[101][101];

    int dp[101][101];

    for (i=1;i

  • 0
    @ 2008-10-04 22:18:14

    鉴于我只会FLOYED。。我便用了FLOYED,然后。。。

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    但我看LS的大牛们似乎还有更好的方法,不知可否发出来,供老菜们参考。

  • 0
    @ 2008-10-04 18:22:19

    咱的AC,大牛! ————————————————————lyd 燕麦

    var

    n,m,a,b,i,j,k,pro:longint;

    TmpS:AnsiString;

    Sa,Sb:String;

    p:array[1..100,1..100] of AnsiString;

    w:array[1..100,1..100] of longint;

    procedure dop(s:AnsiString);

    var

    sum,i,TmpN:longint;

    t:array[1..100] of boolean;

    begin

    fillchar(t,sizeof(t),false);

    sum:=0;

    while s'' do

    begin

    for i:=1 to length(s) do

    if s[i]='|' then break;

    TmpS:=copy(s,1,i-1);

    delete(s,1,i);

    val(TmpS,TmpN);

    t[TmpN]:=true;

    end;

    for i:=1 to n do

    if t[i] then inc(sum);

    writeln(sum);

    end;

    begin

    fillchar(w,sizeof(w),26);

    readln(n,m);

    for i:=1 to m do

    begin

    readln(a,b);

    w[a,b]:=1;

    w:=1;

    str(a,Sa);

    str(b,Sb);

    p[a,b]:=Sa+'|'+Sb+'|';

    p:=p[a,b];

    end;

    for k:=1 to n do

    for i:=1 to n do

    for j:=1 to n do

    if (ij) and (jk) and (ki) then

    if w+w[k,j]

  • 0
    @ 2008-10-04 17:41:32

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    赤果果的floyed,咩~

  • 0
    @ 2008-10-04 15:04:27

    先福咯一的,在此过程中记录亮点间最短路径所经过的点,然后求和!

  • 0
    @ 2008-10-02 23:05:33

    program p1446;

    var

    f:array[1..100,1..100]of longint;

    a:array[1..100,1..100]of longint;

    x,y,n,m,p,i,j,k:longint;

    begin

    readln(n,m);

    fillchar(f,sizeof(f),0);

    for i:=1 to m do

    begin

    readln(x,y);

    f[x,y]:=1;

    f[y,x]:=1;

    end;

    for k:=1 to n do

    for i:=1 to n do

    for j:=1 to n do

    if (ij)and(jk)and(ki) then

    if (f0)and(f[k,j]0) then

    if f=0 then f:=f+f[k,j]

    else

    begin

    if f>f+f[k,j] then f:=f+f[k,j];

    end;

    readln(p);

    fillchar(a,sizeof(a),0);

    for i:=1 to p do

    begin

    readln(x,y);

    if f[x,y]>0 then a[x,y]:=2;

    for j:=1 to n do

    if (jx)and(jy) then

    if f[x,y]=f[x,j]+f[j,y] then inc(a[x,y]);

    writeln(a[x,y]);

    end;

    end.

    漂亮的程序

信息

ID
1446
难度
5
分类
图结构 | 最短路 点击显示
标签
递交数
3512
已通过
1329
通过率
38%
被复制
10
上传者