题解

157 条题解

  • 0
    @ 2009-07-31 09:19:08

    ls的程序着实精简,不过有个地方容易引起误会,他的l应该是步数+1

    不过这样程序写出来十分好看

    for m:=1 to n do

    if m in then f:=f+a[m,l-m];

    这句话我参考了………

  • 0
    @ 2009-07-27 22:34:45

    要是再早一年做这题...

    我早就光荣退休了.

  • 0
    @ 2009-07-19 16:09:26

    编译通过...

    ├ 测试数据 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-19 10:15:19

    44%

















    43%

    编译通过...

    ├ 测试数据 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-08-16 11:03:01

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var f:array[-41..41,-41..21,-41..21,-41..21]of longint;

    a:array[-41..21,-41..21]of integer;

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

    function max(q,w,e,r,t,y,u,i:longint):longint;

    begin

    if q>w then max:=q else max:=w;

    if e>max then max:=e;

    if r>max then max:=r;

    if t>max then max:=t;

    if y>max then max:=y;

    if u>max then max:=u;

    if i>max then max:=i;

    end;

    begin

    readln(n);

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

    for dep:=2 to 2*n do

    for j:=1 to n do

    for k:=1 to n do

    for l:=1 to n do

    begin

    f[dep,j,k,l]:=max(f[dep-1,j,k,l],

    f[dep-1,j,k,l-1],

    f[dep-1,j,k-1,l],

    f[dep-1,j,k-1,l-1],

    f[dep-1,j-1,k,l],

    f[dep-1,j-1,k,l-1],

    f[dep-1,j-1,k-1,l],

    f[dep-1,j-1,k-1,l-1]);

    if (j=k)and(k=l) then

    f[dep,j,k,l]:=f[dep,j,k,l]+a[j,dep-j]

    else if j=k then

    f[dep,j,k,l]:=f[dep,j,k,l]+a[j,dep-j]+a[l,dep-l]

    else if k=l then

    f[dep,j,k,l]:=f[dep,j,k,l]+a[j,dep-j]+a[l,dep-l]

    else if j=l then

    f[dep,j,k,l]:=f[dep,j,k,l]+a[j,dep-j]+a[k,dep-k]

    else f[dep,j,k,l]:=f[dep,j,k,l]+a[j,dep-j]+a[k,dep-k]+a[l,dep-l];

    end;

    write(f[2*n,n,n,n]);

    end.

    四维一次AC

  • 0
    @ 2009-06-18 20:02:14

    重温此题,使用了费用流解法,一遍AC了……

    p.s. 一开始程序一直死循环,看了半天才发现少了一个p:=p^.next,囧……

  • 0
    @ 2009-06-17 15:46:04

    程序比较复杂,思路比较简单,可以看奥赛经典234页,讲得很详细。

  • 0
    @ 2009-05-24 15:38:38

    当年看到这题什么话都说不出来……被吓怕了……现在看了JerryZhou的提示……猛然醒悟,感谢JerryZhou,这才是真正好的题解

  • 0
    @ 2009-03-24 13:02:11

    多进程DP。

    用4维做。。

    27行可以AC。。

    关键是转移方程。。

    要考虑8种情况。。

  • 0
    @ 2009-03-21 13:42:46

    to curmit大牛:

    我simplex写了300+行然后毫无疑问的WA了.欧啊啊啊啊...

  • 0
    @ 2009-03-07 22:35:49

    111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111次AC

  • 0
    @ 2009-06-25 17:09:39

    费用流可以k取方格数

  • 0
    @ 2009-02-13 01:57:51

    最大费用最大流编了100行。

    然后一遍AC,哈哈哈哈哈哈哈!!!!!

  • 0
    @ 2009-01-26 21:45: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
    @ 2009-01-20 15:15:07

    状态转移方程是f[t,i,j,k]=max(f[t-1,i-1,j,k],f[t-1,i,j-1,k],f[t-1,i,j,k-1],f[t-1,i-1,j-1,k],f[t-1,i-1,j,k-1],f[t-1,i,j-1,k-1],f[t-1,i-1,j-1,k-1])+map+map[j,t-j+1]+map[k,t-j+1];

    (t-n+1

  • 0
    @ 2008-12-20 22:57:11

    以步数划分阶段,一定要开到39;

    建议用一个循环来解决转移状态的问题。

  • 0
    @ 2008-12-12 16:57:48

    哪位大牛说下初始状态和最终答案应该是什么?

    还是有点迷糊......

  • 0
    @ 2008-11-27 21:03:28

    .....................................

  • 0
    @ 2008-11-23 14:07:33

    今年省赛第三题太顶歇了!!

    囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧囧 囧囧

    囧 囧囧囧囧囧囧囧囧 囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧 囧 囧 囧

    囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧

  • 0
    @ 2008-11-13 22:09:14

    小優化:

    AAABBBB

    AABBBBB

    ABBBBBB

    BBBBBBA

    BBBBBAA

    BBBBAAA

    前三排和后三排(A)肯定取完。所以階段循環只需要從4到2*n-4就行了。

    又因爲N>=4,啊哈,正好不用特殊處理

    最後把所有A位置的數加上去就行了。

信息

ID
1143
难度
4
分类
动态规划 点击显示
标签
递交数
3533
已通过
1458
通过率
41%
被复制
9
上传者