题解

160 条题解

  • 0
    @ 2008-11-09 17:55:41

    最短的:

    program Accepted;

    var

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

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

    da:array[1..200] of longint;

    begin

    readln(n);

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

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

    for i:=n+1 to 2*n+1 do da[i]:=da;

    for j:=3 to 2*n do

    for i:=j-2 downto 1 do

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

    begin

    max:=f+f[k,j]+da[i]*da[k]*da[j];

    if max>f then f:=max;

    end;

    max:=0;

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

    writeln(max);

    end.

  • 0
    @ 2008-11-09 11:41:33

    #include

    #include

    #include

    #include

    using namespace std;

    struct{

    int a,b;

    } mars[210];

    int dp[220][220];

    int n;

    int MAX(int i, int j){

    return i>j?i:j;

    }

    int main(){

    cin >> n;

    for (int i=1; i> mars[i].a;

    }

    mars[n+1].a=mars[1].a;

    for (int i=1; i

  • 0
    @ 2008-11-07 07:40:02

    编译通过...

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

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

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

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

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

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

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

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

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

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

    明白了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    谢谢大牛!!!

  • 0
    @ 2008-11-06 17:25:22

    program energy;

    var

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

    q:array [1..200,1..200] of longint;

    i,j,n,x,max,m,k:longint;

    begin

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

    fillchar(q,sizeof(q),0);

    readln(n);

    max:=0;m:=0;

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

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

    for x:=2 to n do

      for i:=1 to n do

      begin

       j:=i+x;

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

       begin

        m:=a[i]*a[k]*a[j]+q+q[k,j];

        if qmax then max:=q;

    writeln(max);

    end.

    编译通过...

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

     ├ 错误行输出

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

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

     ├ 错误行输出

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

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

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

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

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

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

    为什么只有50分啊~~

  • 0
    @ 2008-11-06 00:51:29

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    难受啊,当年贪心10分

    刚才调了半个小时最后发现是把 2*n-i 打成了 N

    rp啊。

  • 0
    @ 2008-11-01 10:42:11

    编译通过...

    ├ 测试数据 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-10-31 22:18:30

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

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

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

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

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

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

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

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

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

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

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

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

    轻松ac,又是石子合并的dp。。

  • 0
    @ 2008-10-31 09:07:41

    为了练习

    写了2种不同的方程

    F I~J的最大

    F I持续J个的最大 .

    对石子归并彻底了解!

    30行...

    超过30行我不写了..

    很普通的石子`\

  • 0
    @ 2008-10-27 16:13:12

    for(p=1;p

  • 0
    @ 2008-10-21 21:54:14

    编译通过...

    ├ 测试数据 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-10-18 20:54:05

    加了那段 第七个点过了~~~

    第一个点死都过不去~~~~~

    彻底无语了~~

  • 0
    @ 2008-10-08 21:24:18

    编译通过...

    ├ 测试数据 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-10-05 16:10:14

    #include

    #include

    using namespace std;

    void Energy()

    {

    #define in cin

    #define out cout

    //if(in.fail()){ cerrN;

    int l[N+1],matrix[N+1][N+1];

    for(i=1;i>l[i];

    matrix[i][1]=0;

    }

    for(j=2;j

  • 0
    @ 2008-10-04 21:19:51

    #include

    main(){

    int i,j,n,p,k;

    long int a[202];

    scanf("%d\n",&n);

    for (i=1;i

  • 0
    @ 2008-10-03 19:09:30

    F=Max{F+F[k+1,j]+A*A[k]*A[j]}

    ( i

  • 0
    @ 2008-09-30 10:25:53

    program energy;

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

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

    q:array[1..200,1..200] of longint;

    procedure getin;

    begin

    readln(n);

    for i:=1 to n do begin

    read(a[i]);

    a:=a[i];

    end;

    end;

    begin

    getin;

    fillchar(q,sizeof(q),0);

    for i:=1 to (n-1) do begin

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

    max:=0;

    for k:=0 to i-1 do begin

    tmp:=q[j,j+k]+q[j+k+1,j+i]+a[j]*a[j+k+1]*a[j+i+1];

    if tmp>max then max:=tmp;

    end;

    q[j,j+i]:=max;

    end;

    end;

    max:=0;

    for i:=1 to n do begin

    tmp:=q;

    if tmp>max then max:=tmp;

    end;

    writeln(max);

    end.

  • 0
    @ 2008-09-30 09:48:02

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    1,推荐不会的同学把输入数据修改成题目所给的形式 (record数组,p[i].f,p[i].r)这样理解,思考比较方便

    2.记忆化搜索更容易编写.

  • 0
    @ 2008-09-27 22:07:32

    编译通过...

    ├ 测试数据 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-09-18 17:07:26

    readln(n);

    for i:=1 to n do{t[i],w[i]分别表示i位置的头尾标记}

    begin

    read(t[i]);

    w:=t[i];

    end;

    w[n]:=t[1];

    m:=2*n-1;{将前面的n-1个珠子连在最后一个后面,将环形转换为串形}

    for i:=n+1 to m do

    begin

    t[i]:=t;

    w[i]:=w;

    end;

    关键的转换

    把串变成环

  • 0
    @ 2008-09-15 15:07:50

    第2000人,纪念一下!

信息

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