题解

117 条题解

  • 0
    @ 2009-04-24 17:02:37

    第6组是CHEAT过的...

    为什么我的答案是1001 标准是1019?

    郁闷.

  • 0
    @ 2009-04-16 19:40:44

    第二个点究竟怎么回事 。。。。。有是输出8019的吗???我的程序都改了N个版本了。。。。。

    原来是读入错误 。。。。。。。

  • 0
    @ 2009-04-02 13:34:02

    AC0ms,

    树形DP,O(n),

    但不需要像楼下那么麻烦

    要知道我代码风格这么长的人也才不到60行(pascal)

    这题难度应该改成2或1,太基础了。

  • 0
    @ 2009-03-29 13:47:54

    编译通过...

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

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

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

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

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

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

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

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

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

    第611!

  • 0
    @ 2009-03-03 00:25:06

    #include

    using namespace std;

    #define MAX_INT 2000000000

    #define PR(A) cout

  • 0
    @ 2009-02-04 15:27:45

    编译通过...

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

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

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

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

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

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

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

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

  • 0
    @ 2009-01-11 11:15:29

    果然是难度3的题,3种状态阿

  • 0
    @ 2008-12-31 20:50:09

    一个小细节打错,浪费两个钟头..

    most=min{f[son,1]-f[son,2]}

    打成了

    most=min{f[son,2]-f[son,1]}

    样例不但对,还过了3个点

    我无语了..

    差点头皮抓破

    中途去下了4盘军旗,玩了两局真3,终于发现问题.

  • 0
    @ 2008-11-13 08:59:54

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

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

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

    ├ 测试数据 04:运行时错误...| 错误号: 216 | 存取非法

    ├ 测试数据 05:运行时错误...| 错误号: 216 | 存取非法

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

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

    请问这是啥原因啊,咋会是216啊

  • 0
    @ 2008-11-12 22:28:08

    这不俨然就是WJD用贪心讲的那道火力控制网??

    用TreeDP AC鄙视之

  • 0
    @ 2009-11-02 12:37:48

    我又忘了这题的状态设计..回来看看- -

  • 0
    @ 2008-11-10 20:26:22

    指针写法(核心代码):

    procedure dp(i:longint);

    var

    j,k,sum,total:longint;

    min:int64;

    p:link;

    begin

    p:=son[i]; sum:=0; total:=0;

    f:=w[i];f:=0;f:=0;

    while pnil do

    begin

    j:=p^.s;

    dp(j);

    f:=f+minof2(minof2(f[j,1],f[j,2]),f[j,3]);

    f:=f+minof2(f[j,1],f[j,2]);

    f:=f+f[j,2];

    if f>maxlongint then f:=maxlongint;

    if f[j,2]=minof2(f[j,1],f[j,2]) then

    inc(sum);

    inc(total);

    p:=p^.next;

    end;

    p:=son[i];

    if (sum=total) and (pnil) then

    begin

    min:=maxlongint;

    while pnil do

    begin

    j:=p^.s;

    if f[j,1]-f[j,2]

  • 0
    @ 2008-11-06 08:30:52

    writeln(min2(dfs(root,1),dfs(root,2)));

  • 0
    @ 2008-11-05 09:40:56

    program v1144;

    type treetype=record

    num:integer;

    son:array[1..1500]of integer;

    end;

    var f:array[1..1500,1..3]of int64;

    tree:array[1..1500]of treetype;

    w:array[1..1500]of longint;

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

    n,x,i,j,k,root:integer;

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

    begin

    min:=a;

    if min>b then min:=b;

    end;

    procedure work(i:integer);

    var j,sum:integer;

    mm:int64;

    begin

    f:=w[i];f:=0;f:=0;sum:=0;

    for j:=1 to tree[i].num do begin

    work(tree[i].son[j]);

    f:=f+

    min(min(f[tree[i].son[j],1],f[tree[i].son[j],2]),f[tree[i].son[j],3]);

    f:=f+f[tree[i].son[j],2];

    if f>maxlongint then f:=maxlongint;{注意此处,不要越界!!!}

    f:=f+min(f[tree[i].son[j],2],f[tree[i].son[j],1]);

    if f[tree[i].son[j],2]=min(f[tree[i].son[j],2],f[tree[i].son[j],1])

    then inc(sum);

    end;

    if (sum=tree[i].num)and(tree[i].num>0) then begin

    mm:=maxlongint;

    for j:=1 to tree[i].num do

    if f[tree[i].son[j],1]-f[tree[i].son[j],2]

  • 0
    @ 2008-11-03 13:18:51

    编译通过...

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

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

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

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

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

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

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

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

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

    一次AC,。。用F,按楼下说法 很快哦~~~

    60多行代码,爽)))

  • 0
    @ 2008-10-31 18:44:46

    编译通过...

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

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

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

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

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

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

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

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

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

    http://hi.baidu.com/pjww/blog/item/e6fb1f2d9ccb7c37359bf7e3.html

    我是在了这个博客以后才知道的方法的(不是我的博客)

  • 0
    @ 2008-10-30 19:53:27

    编译通过...

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-10-22 19:31:58

    编译通过...

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

    ├ 测试数据 02:答案错误... ├ 标准行输出1019

     ├ 错误行输出 1001

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

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

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

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

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

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

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

    怎么回事

  • 0
    @ 2008-10-21 23:20:08

    提交了N次...把0作为初值发生了冲突..郁闷..

    55行的时间效率O(N)的动规解决。。

  • 0
    @ 2008-10-19 22:06:28

    知道是树形动归了,但就是不能AC

    尴尬啊。。

信息

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