题解

99 条题解

  • 0
    @ 2009-08-15 12:20:39

    var

    n,m,i,j,p:integer;

    min,max:longint;

    a:packed array[1..100]of integer;

    fmin:packed array[1..100,1..100,0..9]of longint;

    fmax:packed array[1..100,1..100,0..9]of longint;

    function js(l,r:integer):integer;

    var

    i:integer;

    sum:int64;

    begin

    sum:=0;

    for i:=l to r do sum:=sum+a[i];

    if sum=p)and((r-i-1)>=(k-1-p)) then

    if findmin(l,i,p)*findmin(i+1,r,k-1-p)=p)and((r-i-1)>=(k-1-p)) then

    if findmax(l,i,p)*findmax(i+1,r,k-1-p)>now then

    now:=findmax(l,i,p)*findmax(i+1,r,k-1-p);

    end;

    fmax[l,r,k]:=now;

    findmax:=fmax[l,r,k];

    end;

    end;

    end;

    begin

    readln(n,m);

    for i:=1 to n do

    begin

    readln(a[i]);

    a:=a[i];

    end;

    for i:=1 to 2*n do

    for j:=1 to 2*n do

    for p:=0 to m do

    begin

    fmin:=-1;

    fmax:=-1;

    end;

    min:=maxlongint;max:=0;

    for i:=1 to n do

    begin

    if findmin(i,i+n-1,m-1)max then max:=findmax(i,i+n-1,m-1);

    end;

    writeln(min);

    write(max);

    end.

  • 0
    @ 2009-08-13 14:56:19

    longint就ok了。。。9的9次方也在范围内

    编译通过...

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

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

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

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

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

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

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

  • 0
    @ 2009-08-06 11:00:12

    话说本菜最近思维极其迟钝……

    采用最笨的方法秒了…………

    程序极其繁琐,写了55行

  • 0
    @ 2009-08-05 21:34:37

    普及组的我还叫了3次,悲剧了,数据太多了,我就不发了,想要的可以CALL

  • 0
    @ 2009-07-30 17:09:04

    一次AC。。。。水。。。

    不需要高精度

    int64就够

    3维的DP

  • 0
    @ 2009-07-19 15:17:02

    楼下B哥,吹牛果然厉害!!!

  • 0
    @ 2009-06-08 09:48:27

    满水的

    方程好想= =

    重点是处理环状

    我是单独枚举最后一刀的位置把环状搞成链状

    比如

    1 2 3 5 7 4这样一个环

    枚举切完最后一刀所有的链状情况就是

    1 2 3 5 7 4

    2 3 5 7 4 1

    3 5 7 4 1 2

    5 7 4 1 2 3

    7 4 1 2 3 5

    4 1 2 3 5 7

    然后每种情况下

    方程处理除最后一刀外剩下的(m-1)刀的切法

    f:=max(f*f[0,l+1,k]);

  • 0
    @ 2009-05-25 16:43:42

    第200题~纪念一下..

  • 0
    @ 2009-05-16 15:05:46

    真郁闷,我交了十次,我开longint输出答案比正确答案长,开成int64,有一个点超时,结果是调用函数出了问题,真晕

  • 0
    @ 2009-05-06 12:24:19

    编译通过...

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

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

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

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

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

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

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

    Why??

  • 0
    @ 2009-04-08 12:28:32

    DDPP

  • 0
    @ 2009-03-29 23:29:03

    我直接看傻了

    (a mod b)中 若a0}

    大家注意了!

  • 0
    @ 2009-03-29 16:41:46

    调了半天才发现,有的状态根本不能到达!!!!

    注意!!!

    WA了n次...

  • 0
    @ 2009-03-21 09:24:02

    一楼的fz1993322

      1 FF[I,J,P]:=MAX(FF[I,K,P-1]+HH[K+1,J] );

      2 GG[I,J,P]:=MIN(GG[I,K,P-1]+HH[K+1,J] );

    “P-1]+HH”中的“+”MS要改成“*”吧?

  • 0
    @ 2009-01-16 14:49:33

    如果各位象如下情况   

       "程序输出比正确答案长"

    请注意 

      1:注意变量 (LONGINT 就够了,INT64 可能就会"程序输出比正确答案长"----我的经验);

      2:强烈注意 "取模" 最好用数组 (HH[I,J]:=(HH[I,J-1]+A[I]+100000000)MOD 10;

      3:能量项链的模式 

      

    DP方程:

      1 FF[I,J,P]:=MAX(FF[I,K,P-1]+HH[K+1,J] );

      2 GG[I,J,P]:=MIN(GG[I,K,P-1]+HH[K+1,J] );

      I:从I个起  J:到第J个  P:分成几部分  K:I〈=K〈=J

  • 0
    @ 2008-11-10 23:06:39

    一次过。

    so easy.That's impossible.

  • 0
    @ 2008-11-07 09:43:07

    石子归并类DP

    FB:=MAX{FB*S[JJ+1,J]}

    FS:=MIN{FS*S[JJ+1,J]}

    I

  • 0
    @ 2008-11-06 23:45:26

    可惜没有秒杀

    都怪dolphin.........

    第三个点9ms

    我是第888个通过的^_^!!!!!!!

    先把数组复制一遍

    直接开个三维数组记录状态

    分别是起始位置,第几个部分,已经覆盖了多少个,然后就是dp.....

  • 0
    @ 2008-11-05 19:28:54

    1次AC。。。感觉终于回来了 前几天总是每道题莫名奇妙的WA上1-2个点

  • 0
    @ 2008-11-02 21:12:36

    我终于无语了

    这么一题我居然提交4次

    两次暴longint 一次没考虑m=1

    话说这是普及组的题啊 ~

信息

ID
1218
难度
5
分类
动态规划 | 环形DP 点击显示
标签
递交数
2837
已通过
1084
通过率
38%
被复制
17
上传者