题解

65 条题解

  • 0
    @ 2009-07-28 19:33:07

    第一次...

    编译通过...

    ├ 测试数据 01:运行时错误...| 错误号: 216 | 存取非法

    ├ 测试数据 02:运行时错误...| 错误号: 216 | 存取非法

    ├ 测试数据 03:运行时错误...| 错误号: 216 | 存取非法

    ├ 测试数据 04:运行时错误...| 错误号: 216 | 存取非法

    ├ 测试数据 05:运行时错误...| 错误号: 216 | 存取非法

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

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

    ....n

  • 0
    @ 2009-07-02 17:46:58

    记忆化搜索好慢

    编译通过...

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

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

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

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

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

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

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

  • 0
    @ 2009-06-15 13:34:49

    设f为第i到j个数取得的最大值,那么对手每次也一定会选取最优,因此可以得到状态转移方程为

    f:=max{sum-f+w[i],sum-f+w[j]}

    再化简一下

    f:=max{sum-f,sum-f}这样就很明了了

    ( 2007-4-6 2:40:23 )

  • 0
    @ 2009-05-30 16:21:44

    d表示从i开始后j个数字的和

    f表示从i开始后j个数字,先取的人能取得的最大的和。

    for k:=2 to n do

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

    begin

    d:=d+a[i];

    if d-f+a>d-f+a[i] then

    f:=d-f+a

    else f:=d-f+a[i];

    end;

  • 0
    @ 2009-05-10 20:17:21

    秒杀!

    o(n2)

  • 0
    @ 2009-04-23 00:22:27

    ├ 测试数据 01:运行超时...

    ├ 测试数据 02:运行超时...

    ├ 测试数据 03:运行超时...

    ├ 测试数据 04:运行超时...

    ├ 测试数据 05:运行超时...

    为什么会这样???能说明没理解错题意吗

  • 0
    @ 2009-04-06 13:48:26

    似乎要用Qword,先看奇数位数大还是偶数位数大,决定取哪里,然后加起来就行了。

  • 0
    @ 2009-02-01 18:52:16

    f:=sum-min(f,f)

    一句解决问题

    先后的意思就是

    先的话输出F[1,N];后的话输出SUM[1,N]-F[1,N];

    根本无需用双进程DP

  • 0
    @ 2009-01-19 08:48:25

    汗..贪心也过得

    太弱了吧

  • 0
    @ 2008-11-05 17:03:35

    受jsydtc大牛的

    g1:=max(a[i]+g2,a[j]+g2)

       g2:=min(g1,g1);

    启发利用函数超前调用(可以使函数循环调用)+记忆化搜索

    编译通过...

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

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

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

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

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

    虽然没全零。。。但是还是可以的。。。。

  • 0
    @ 2008-10-28 22:35:18

    easy dp

    经ra224大牛提示

    秃然发现和上午做的关路灯那么像

  • 0
    @ 2008-10-17 10:05:02

    编译通过...

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

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

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

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

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

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

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

    Dragon评测

    这道题的循环正确是应该是这样

    for L:=1 to n do

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

    可是我写成

    for l:=1 to n do

    for i:=1 to l-i+1 do

    于是乎我付出了两个百分点的代价

  • 0
    @ 2008-09-29 16:11:03

    编译通过...

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

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

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

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

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

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

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

    一行一行读是会挂的,各位注意啊

  • 0
    @ 2008-09-19 14:51:01

    不错的题目,两个人都作出最优解。本质是动规,不过中间状态有些变化。

    写了两个互相调用的函数g1,g2。g1表示先选的人做出的最优决策,g2表示后选的人做出的最优决策,因此

    g1:=max(a[i]+g2,a[j]+g2)

    g2:=min(g1,g1);

    很可惜pascal不像c++,使用前必须先定义,因此得改成非递归。分个奇偶讨论。每步的决策就出来了。

    bs楼下的楼下的楼下,不认真看题还怪题不好。要是求取得数的个数这题还用做吗?

  • 0
    @ 2008-09-18 09:08:48

    题目倒还算是简单....

    看错先手后手的读入位置 让我WA了一次........

  • 0
    @ 2008-09-11 19:47:16

    样例...我无语...

  • 0
    @ 2008-09-06 18:38:31

    它要输出的到底是 能取到的数的个数,还是取到的数的总和?

    BS不写清楚的垃圾题!!!

  • 0
    @ 2008-08-29 14:59:09

    贪心只能必胜 但不能保证最优

    还是dp好 ……

  • 0
    @ 2007-11-12 21:15:22

    编译通过...

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

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

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

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

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

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

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

  • 0
    @ 2007-11-10 10:56:13

    USACO 3.3.4 A Game

信息

ID
1202
难度
5
分类
动态规划 点击显示
标签
(无)
递交数
887
已通过
324
通过率
37%
被复制
4
上传者