题解

160 条题解

  • 0
    @ 2009-08-07 19:53:42

    33行

  • 0
    @ 2009-08-04 20:59:19

    编译通过...

    ├ 测试数据 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-10-24 16:44:53

    编译通过...

    ├ 测试数据 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-15 17:20:17

    program g;

    var

    n:integer;

    a:array[1..250] of integer;

    i,j,k:integer;

    b:array[1..250,1..250] of int64;

    max:qword;

    begin

    readln(n);

    for i:=1 to n do

    begin

    read(a[i]);

    a[n+i]:=a[i];

    end;

    for i:=1 to n do

    for j:=1 to n+n-i do

    for k:=j to i+j-1 do

    if b[j,i+j]

  • 0
    @ 2009-07-14 16:16:21

    经典的区间动态

    很短不是么

    var i,j,k,t,n,max,temp:longint;

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

    f:array[0..201,0..201] of longint;

    begin

    readln(n);

    for i:=1 to n do

    begin

    read(a[i]);

    a:=a[i];

    end;

    for j:=3 to 2*n do

    for i:=j-2 downto 1 do

    for k:=i+1 to j-1 do

    begin

    temp:=f+f[k,j]+a[i]*a[k]*a[j];

    if temp>f then f:=temp;

    end;

    for i:=1 to n do if f>max then max:=f;

    writeln(max);

    end.

    • @ 2016-07-20 17:26:19

      f是数组呀,怎么会有max:=f

  • 0
    @ 2009-06-17 21:02:19

    编译通过...

    ├ 测试数据 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,t,n,max,temp:longint;

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

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

    begin

    readln(n);

    for i:=1 to n do

    begin

    read(a[i]);

    a:=a[i];

    end;

    for i:=1 to 2*n-2 do

    f:=a[i]*a*a;

    for t:=2 to n-1 do

    for i:=1 to 2*n-t-1 do

    begin

    max:=0;

    j:=i+t;

    for k:=i to j-1 do

    begin

    temp:=f+f[k+1,j]+a[i]*a[k+1]*a[j+1];

    if temp>max then max:=temp;

    end;

    f:=max;

    end;

    max:=0;

    for i:=1 to n do

    if f>max then max:=f;

    writeln(max);

    end.

  • 0
    @ 2009-06-16 16:33:41

    program p1312;

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

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

    i,j,n,k:integer;

    max:longint;

    begin

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

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

    readln(n);

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

    for j:=2 to n do

    for i:=1 to n do

    begin

    max:=0;

    for k:=1 to j-1 do

    if f+f[(i+k-1)mod n +1,j-k]+a[i]*a[(i+j-1)mod n+1]*a[(i+k-1)mod n +1] >max then

    max:= f+f[(i+k-1)mod n +1,j-k]+a[i]*a[(i+j-1)mod n+1]*a[(i+k-1)mod n +1] ;

    f:=max;

    end;

    max:=0;

    for i:=1 to n do

    if f>max then max:=f;

    writeln(max);

    end.

  • 0
    @ 2009-06-06 03:28:19

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    总算第50题啦,真不容易。

  • 0
    @ 2009-08-22 16:22:35

    我用DP终于A了,但用贪心有什么反例吗?

  • 0
    @ 2009-05-04 22:15:33

    dp是个好方法

    简单说一下项链的表示(给像我一样菜鸟的提示):

    1.存n个数 访问时加上mod n

    或 2.存2n个数 1 2 3 就存 1 2 3 1 2 3

    {居然有人用链表 我晕倒}

    剩下的和矩阵练乘法一样了

  • 0
    @ 2009-04-18 14:46:21

    记忆化搜索

    var

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

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

    i,n,max:longint;

    function find(p,q:longint):longint;

    var

    j:longint;

    begin

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

    find:=0;

    for j:=p+1 to q-1 do

    if find(p,j)+find(j,q)+a[p]*a[q]*a[j]>find then

    find:=find(p,j)+find(j,q)+a[p]*a[q]*a[j];

    f[p,q]:=find;

    exit;

    end;

    begin

    readln(n);

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

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

    find(1,n shl 1);

    for i:=1 to n do

    if f>max then max:=f;

    writeln(max);

    end.

  • 0
    @ 2009-04-09 16:03:53

    love_947

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    ( 2009-1-21 12:40:57 )

  • 0
    @ 2009-02-25 15:57:30

    为什么!!!!!!!!!!!!!!!!!!!

    数组开200不可以???????????要250!!!!!!!!!!!!!!

  • 0
    @ 2009-01-21 12:40:57

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-12-15 11:54:15

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-12-13 19:14:33

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    经典问题,石子归并

    注意区间型的要枚举区间长度~~

    把数组开到2n就可以了

    ***|Hpec killed P1312 with AWP

  • 0
    @ 2008-12-06 23:34:28

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    数组没开到220,居然写运行超时…………RP有问题

  • 0
    @ 2008-11-11 21:08:37

    还是不太懂,能否写清楚些!!

  • 0
    @ 2008-11-10 17:19:54

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    f=max(f,f[k+1,j]+ball[i]*ball[k+1]*ball[j+1])

    (i为头珠子,j为尾珠子,i

  • 0
    @ 2008-11-09 19:43:39

    program cx1;

    var

    n,i,j,k,l,max:longint;

    a,b:array[0..1000] of longint;

    ma:array[1..1000,1..1000] of longint;

    procedure work;

    var

    max:longint;

    begin

    fillchar(ma,sizeof(ma),0);

    for i:=1 to i-1 do

    begin for j:=1 to 2*n-i do

    begin

    l:=j+i;

    for k:=j to l-1 do

    if ma[j,k]+ma[k+1,l]+b[k]*a[j]*b[i]>ma[j,l] then

    ma[j,l]:=ma[j,k]+ma[k+1,l]+b[k]*a[j]*b[i];

    end;

    end;

    max:=0;

    for i:=1 to n do

    if ma>max then max:=ma;

    writeln(max);

    end;

    begin

    readln(n);

    for i:=1 to n do

    read(a[i]);

    readln;

    a[0]:=a[n];

    a[2*n+1]:=a[1];

    for i:=1 to n do

    a:=a[i];

    for i:=0 to 2*n do

    b[i]:=a;

    work;

    end.

    哪位大牛帮忙看看哪错了啊

信息

ID
1312
难度
4
分类
动态规划 | 环形DP 点击显示
标签
递交数
6824
已通过
2753
通过率
40%
被复制
14
上传者