题解

175 条题解

  • 0
    @ 2009-09-19 10:35: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
    @ 2009-09-18 13:23:56

    好久没一次AC了..

  • 0
    @ 2009-09-15 17:49:43

    从去年到今天,我总算AC了...

    努力吧,就一次机会了

  • 0
    @ 2009-09-13 14:19:55

    为什么这样做只有80分啊?

    我之前是50

    然后是60

    然后这次是80

    哪位高手看看哪里错了?

    var

    m,n:integer;

    a:array[0..50,0..50]of longint;

    f:array[0..100,0..50,0..50]of longint;

    procedure init;

    var

    i,j:integer;

    begin

    readln(m,n);

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

    for i:=1 to m do

    begin

    for j:=1 to n do

    read(a);

    readln;

    end;

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

    end;

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

    begin

    if am)and(k

  • 0
    @ 2009-09-12 18:30:06

    program p1493;

    var

    a:array[-1..52,-1..52] of integer;

    f:array[-1..52,-1..52,-1..52,-1..52] of longint;

    i1,i2,j1,j2,i,j,n,m:integer;

    function max(x,y,u,v:longint):longint;

    begin

    if y>x then x:=y;

    if u>x then x:=u;

    if v>x then x:=v;

    max:=x;

    end;

    begin

    read(n,m);

    for i:=1 to n do

    for j:=1 to m do

    read(a);

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

    for i1:=1 to n do

    for j1:=1 to m do

    for i2:=1 to n do

    for j2:=1 to m do

    begin

    f[i1,j1,i2,j2]:=max(f[i1-1,j1,i2-1,j2],f[i1-1,j1,i2,j2-1],f[i1,j1-1,i2-1,j2],f[i1,j1-1,i2,j2-1])+a[i1,j1];

    if (i1i2) or (j1j2) then inc(f[i1,j1,i2,j2],a[i2,j2]);

    end;

    write(f[n,m,n,m]);

    end.

    本人是小菜,只写了一个超级LJ的四维的动规

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2009-09-10 16:49:13

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

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

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

    惨吧!!!!!!!!!!!!!!!!!

  • 0
    @ 2009-09-09 20:35:48

    #include"stdio.h"

    #include"stdlib.h"

    #define MAX(a,b) (a>b?a:b)

    int a[60][60],dp[200][60][60];

    int main()

    {

      int i,j,m,n,x1,x2,temp,max;

    //  freopen("输入.txt","r",stdin);

    //  freopen("输出.txt","w",stdout);

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

      for(i = 1; i

  • 0
    @ 2009-09-08 18:41:29

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    const filename='p1493';

    var

    m,n,i1,j1,i2,j2,k:longint;

    a:array[0..50,0..50]of longint;

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

    function max(x,y:longint):longint;

    begin if x>y then exit(x);exit(y);end;

    begin

    assign(input,filename+'.in');reset(input);

    assign(output,filename+'.out');rewrite(output);

    readln(m,n);

    for i1:=1 to m do

    for j1:=1 to n do

    read(a[i1,j1]);

    f[1,1,1,1]:=a[1,1];

    for k:=2 to m+n-1 do

    for i1:=1 to m do

    for i2:=1 to m do

    begin

    j1:=k-i1;j2:=k-i2;

    if (j1>0)and(j2>0)then

    begin

    if i1=i2 then continue;

    f[i1,j1,i2,j2]:=max(f[i1-1,j1,i2-1,j2],max(f[i1,j1-1,i2-1,j2],max(f[i1-1,j1,i2,j2-1],f[i1,j1-1,i2,j2-1])));

    if(i1=j1)and(i2=j2)then inc(f[i1,j1,i2,j2],a[i1,j1])

    else f[i1,j1,i2,j2]:=f[i1,j1,i2,j2]+a[i1,j1]+a[i2,j2];

    end;

    end;

    writeln(max(f[m-1,n,m,n-1],f[m,n-1,m-1,n]));

    close(input);close(output);

    end.

    一年了。。。

    我还是不太会

    早知道这个题跟三取方格数的做法一样我去年也许就AC了;如果我AC了这个题我去年就省一了;如果我去年省一说不定我会再接再厉好好学习,争取进省队

    然后我就与XXX比翼双飞……

    然而,上面的全都是假设

    今年我我还是不太会这个题

    希望NOIP2009我能好运

    这将是我第四次,也是最后一次在NOIP的复赛里。

    Good Luck!

  • 0
    @ 2009-09-07 11:28:59

    const d:array[1..4,1..2]of integer=((-1,0),(-1,-1),(0,-1),(0,0));

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

    a:array[1..50,1..50]of integer;

    i,j,k,k1,n,m:integer;

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

    begin

    if a>b then exit(a)

    else exit(b);

    end;

    begin

    readln(n,m);

    for i:=1 to n do

    begin

    for j:=1 to m do read(a);

    readln;

    end;

    for i:=2 to m+n-1 do

    for j:=1 to i do

    if j

  • 0
    @ 2009-09-07 00:18:04

    去年考试时,为什么就没对呢?!

    今天10分钟,3位动归,秒杀!

    #include

    int lenth,wide;

    int map[100][100],storage[200][100][100]={};

    int fp(int step,int lenth1,int lenth2)

    {

    if(storage[step][lenth1][lenth2]!=0)return storage[step][lenth1][lenth2];

    int temp=(lenth1==lenth2?map[lenth1][step-lenth1]:map[lenth1][step-lenth1]+map[lenth2][step-lenth2]),max=temp;

    if(lenth1+1

  • 0
    @ 2009-09-02 20:07:20

    注意锁定边界,不要越界啊

    2

  • 0
    @ 2009-09-01 21:21:59

    这道题搞了半天,最后才发现是调用数据的时候把X,Y搞反了..

    我的也是啊,第一遍程序写对了,还过了6个点,搞了2节课,才发现读入时把X,Y搞反了,这才AC。浪费我时间啊!!!!!

  • 0
    @ 2009-08-27 23:41:35

    这道题搞了半天,最后才发现是调用数据的时候把X,Y搞反了...

  • 0
    @ 2009-08-27 22:21:54

    三维的DP=秒杀

    var

    n,m:longint;

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

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

    i,j,k:longint;

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

    begin

    if a>b then exit(a)

    else exit(b);

    end;

    begin

    assign(input,'vj1493.in');

    reset(input);

    readln(n,m);

    for i:=1 to n do

    for j:=1 to m do

    read(a);

    close(input);

    f[1,1,1]:=a[1,1];

    for k:=2 to n+m-2 do

    for i:=1 to k-1 do

    for j:=i+1 to k do

    begin

    if i+1=j then

    begin

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

    end

    else

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

    end;

    writeln(f[n+m-2,n-1,n]+a[n,m]);

    end.

  • 0
    @ 2009-08-26 15:35:55

    三取方格的弱话版

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2009-08-26 13:26:39

    诡异的DP

  • 0
    @ 2009-08-25 20:09:40

    写丑了~~好慢

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2009-08-25 11:55:52

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    我开了4维速度还是不行,有什么优化下?

  • 0
    @ 2009-08-22 16:40:12

    内存限制?

  • 0
    @ 2009-08-22 16:15:48

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program massage;

    type ary=array[0..51,0..51] of integer;

    bry=array[0..51,0..51,0..51,0..51] of integer;

    cry=array[0..4] of integer;

    var a:ary;

    b:bry;

    c:cry;

    s,i,j,k,l,n,m,sum:integer;

    function max(h,d,e,f:integer):integer;

    var i:integer;

    begin

    max:=0; c[1]:=h;c[2]:=d;c[3]:=e;c[4]:=f;

    for i:=1 to 4 do

    if max

信息

ID
1493
难度
5
分类
动态规划 点击显示
标签
递交数
6702
已通过
2504
通过率
37%
被复制
9
上传者