题解

47 条题解

  • 0
    @ 2009-07-14 21:57:18

    大家买一买,瞧一瞧O(N^3)算法一次AC。

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    const Max_size=10000000;

    var work:array[0..100] of boolean;

    fmax,fmin:array[0..100,0..100] of longint;

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

    n,m,i,k,j,l,p,maxans,minans:longint;

    ch:char;

    function max(a,b,c,d,e:longint):longint;

    begin

    max:=a;

    if maxe then min:=e;

    end;

    begin

    readln(n);

    for i:=1 to n do

    begin

    read(ch); work[i]:=ch='+';

    end;

    readln;

    for i:=1 to n do read(a[i]);

    m:=n*2-1;

    for i:=n+1 to m do

    begin

    work[i]:=work; a[i]:=a;

    end;

    fillchar(fmax,sizeof(fmax),200);

    fillchar(fmin,sizeof(fmin),100);

    for i:=1 to m do

    begin

    fmax:=a[i]; fmin:=a[i];

    end;

    for i:=1 to n-1 do

    for k:=1 to m do

    begin

    j:=i+k; if j>m then break;

    for p:=k to j-1 do

    if work[p] then

    begin

    fmax[k,j]:=max(fmax[k,j],fmax[k,p]+fmax[p+1,j],-Max_size,-Max_size,-Max_size);

    fmin[k,j]:=min(fmin[k,j],fmin[k,p]+fmin[p+1,j],Max_size,Max_size,Max_size);

    end else

    begin

    fmax[k,j]:=max(fmax[k,j],fmin[k,p]*fmin[p+1,j],fmax[k,p]*fmax[p+1,j],fmax[k,p]*fmin[p+1,j],fmin[k,p]*fmax[p+1,j]);

    fmin[k,j]:=min(fmin[k,j],fmin[k,p]*fmin[p+1,j],fmax[k,p]*fmax[p+1,j],fmax[k,p]*fmin[p+1,j],fmin[k,p]*fmax[p+1,j]);

    end;

    end;

    maxans:=-Max_size; minans:=Max_size;

    for i:=1 to n do

    begin

    if fmax>maxans then maxans:=fmax;

    if fmin

  • 0
    @ 2009-07-14 20:33:41

    我和Halt的解法几乎一致,为什么我过不了。

  • 0
    @ 2009-07-14 11:30:03

    想不出来树规怎么做......直接像用数字游戏的方法做的

  • 0
    @ 2009-07-13 19:13:29

    太可恶了!!!

    zgx在最后一点写的话

  • 0
    @ 2009-07-13 18:22:09

    没秒。。。。

    汗颜。。。。。

    比赛的时候没注意负数的情况。。。

    注意:相乘的情况 负负得正 有可能最小值相乘得到最大值,,,,

  • 0
    @ 2009-07-13 16:31:50

    为啥错第9个点??

  • 0
    @ 2009-07-13 15:37:54

    fmax=max(fmin*fmin,fmax*fmax) = =..

    ms不能用四边形优化……

    如果能 请牛人给证明

  • 0
    @ 2009-07-13 15:21:28

    第40个~~~

    Flag   Accepted

    题号   P1565

    类型(?)   动态规划

    通过   40人

    提交   264次

    通过率   15%

    难度   1

    正权与负权区别 .

    (-1)*(-13)>3*4

    所以 最大的乘以最大的不一定是最大的.. - -!!

    负负得正~~

  • 0
    @ 2009-07-13 14:47:16

    不就是石子归并吗?!!

  • 0
    @ 2009-07-13 13:59:38

    负数!

  • 0
    @ 2009-07-13 13:56:39

    要拆环O(N^4)

    昨天没拆环O(N)结果就20分

  • 0
    @ 2009-07-13 12:49:19

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    考试的时候……

    大括号打错了位置……

    只得了10分……

    哭死了……

  • 0
    @ 2009-07-13 23:58:46

    错9个点的 注意下自己的max和min的初值

    还有数组的初值

  • 0
    @ 2009-07-13 10:37:05

    第21个...

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2009-07-13 10:19:06

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    第十八个!!!

    ps:什么是树形动归??我只用了普通的dp.......

  • 0
    @ 2009-07-13 10:05:59

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    第15个通过...

    一开始用普通dp 过不了

    受halt启发用treedp 秒杀

  • 0
    @ 2009-07-13 09:41:17

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    光荣成为第十个Accepted的人...

  • 0
    @ 2009-07-13 09:07:49

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    直接秒杀

  • 0
    @ 2009-07-13 08:58:28

    const maxe=1000000000;

    var

    c:array[1..100] of char;

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

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

    i,j,n,out:longint;

    min,now,max:int64;

    function fmax(x,y,z,k:int64):int64;

    begin

    if (x>=y)and(x>=z)and(x>=k) then exit(x);

    if (y>=x)and(y>=z)and(y>=k) then exit(y);

    if (z>=y)and(z>=x)and(z>=k) then exit(z);

    if (k>=y)and(k>=z)and(k>=x) then exit(k);

    end;

    function fmin(x,y,z,k:int64):int64;

    begin

    if (x

  • 0
    @ 2009-07-13 07:59:38

    这题要不要高精度啊

    为什么老是过不了?

信息

ID
1565
难度
7
分类
动态规划 | 环形DP 点击显示
标签
递交数
1707
已通过
320
通过率
19%
被复制
4
上传者