题解

117 条题解

  • 0
    @ 2008-10-13 20:58:06

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

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

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

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

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

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

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

    一次ac的 太感动了

    我的思路很麻烦

    希望各位大牛写个dp方程

  • 0
    @ 2008-10-06 12:14:05

    树形dp

  • 0
    @ 2008-10-05 12:09:18

    编译通过...

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-09-30 14:29:18

    去年A掉,今年又做

  • 0
    @ 2008-09-26 15:55:43

    第一次写树形dp 费了半天劲 终于ac了

    感谢***|wyk的题解

  • 0
    @ 2008-09-26 14:56:29

    编译通过...

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

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

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

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

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

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

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

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

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

    program palase;

    type aa=record

    num,m:longint;

    c:array[1..1500]of int64;

    end;

    var tr:array[1..1500]of aa;

    p:array[1..1500]of boolean;

    f:array[1..1500,0..2]of int64;

    i,j,k,m,n,root:longint;

    min:longint;

    function xiao(i,j:int64):int64;

    begin

    if i

  • 0
    @ 2008-09-23 21:41:18

    function treedp(x,p:longint):longint;

    var s,min,i:longint;

    t:boolean;

    begin

    if f[x,p]>0then exit(f[x,p]);

    case p of

    1:begin

    s:=0;

    for i:=1 to son[x,0]do

    begin

    min:=treedp(son[x,i],1);

    o:=treedp(son[x,i],2);

    if min>o then min:=o;

    o:=treedp(son[x,i],3);

    if min>o then min:=o;

    s:=s+min;

    end;

    treedp:=s+a[x];

    end;

    2:begin

    if son[x,0]=0 then

    begin

    f[x,p]:=1000000;

    exit(1000000);

    end;

    t:=false;

    s:=0;

    for i:=1 to son[x,0]do

    begin

    min:=treedp(son[x,i],1);

    o:=treedp(son[x,i],2);

    if min>o then min:=o else t:=true;

    s:=s+min;

    end;

    if not(t)then

    begin

    min:=maxlongint;

    for i:=1 to son[x,0]do

    if min>f[son[x,i],1]-f[son[x,i],2]then

    min:=f[son[x,i],1]-f[son[x,i],2];

    s:=s+min;

    end;

    treedp:=s;

    end;

    3:begin

    s:=0;

    for i:=1 to son[x,0]do

    s:=s+treedp(son[x,i],2);

    treedp:=s;

    end;

    end;

    f[x,p]:=treedp;

    end;

    0打成o郁闷……

  • 0
    @ 2008-09-22 21:37:21

    编译通过...

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

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

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

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

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

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

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

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

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

    program p1144;

    var v,wh,wh0,i,j,k,m,n:longint;

    a:array[0..1501,-1..1501]of longint;

    f,w:array[0..1501]of longint;

    s1,s2,s3:array[0..1501]of longint;

    function min(a,b:longint):longint;

    begin

    if a>b then min:=b else min:=a;

    end;

    procedure work(v:longint);

    var i,j:longint;

    begin

    for i:=1 to a[v][0] do work(a[v][i]);

    wh:=0;

    for i:=1 to a[v][0] do

    begin

    wh0:=min(s1[a[v][i]],s2[a[v][i]]);

    inc(wh,wh0);

    end;

    fillchar(m,sizeof(m),15);

    if a[v][0]=0 then

    begin

    s1[v]:=m;

    s2[v]:=w[v];

    s3[v]:=m;

    end;

    for i:=1 to a[v][0] do

    begin

    wh0:=min(s1[a[v][i]],s2[a[v][i]]);

    dec(wh,wh0);

    inc(wh,s2[a[v][i]]);

    if wh

  • 0
    @ 2008-09-15 20:18:46

    为什么最后2个点总过不了??!!!哪个牛人帮忙下...

  • 0
    @ 2008-08-14 10:04:16

    第6个点最大赋值用MAXINT 太小 用 MAXLONGINT 会超范围, 用1000000 可以过

  • 0
    @ 2008-08-12 15:53:14

    tree-dp(去-笛屁)

  • 0
    @ 2008-08-07 12:08:52

    第一次写树状DP,看了大牛们的讲解终于写正确了,不过程序太丑了。。。。

  • 0
    @ 2008-07-25 02:02:12

    编译通过...

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

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

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

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

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

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

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

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

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

    树形DP..

    汗颜,今天RP真低,交了5次才AC.

  • 0
    @ 2008-09-16 14:45:48

    左看右看,看到一道弱题。来不及了,明天再来AC

    最近树形DP做的多,大概会很轻松吧,哈哈~

    编译通过...

  • 0
    @ 2007-11-03 20:55:48

    编译通过...

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

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

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

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

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

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

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

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

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

    转变为二叉树

  • 0
    @ 2007-11-02 21:08:45

    第6个点竟然是因为最大值赋值为maxint太小……

  • 0
    @ 2007-10-27 11:12:11

    顶CQP,我和你一样,只拿了79分~

    阿弥陀佛~~

  • 0
    @ 2007-10-26 19:31:09

    编译通过...

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

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

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

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

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

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

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

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

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

  • 0
    @ 2007-10-19 23:00:15

    哈哈,.原来大家都想的是一样的方法...!

  • 0
    @ 2007-09-22 21:36:31

    第6个点有什么特别要注意的地方,总是过不了

信息

ID
1144
难度
7
分类
动态规划 | 树形DP 点击显示
标签
递交数
4600
已通过
1007
通过率
22%
被复制
10
上传者