题解

244 条题解

  • 0
    @ 17 年前

    f表示前i个分成差为j的两堆时的最大高度

    f=max{f,

    f,

    f+v[i],(j-v[i]>=0)

    f-abs(j-v[i])+v[i],(j-v[i]

  • 0
    @ 17 年前

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    庆祝一下!!!!!

    类似背包,分取与不取,如取就记录下来,最后 (取出来的 div 2)就行了!!!!!

  • 0
    @ 18 年前

    大家注意不要忘记impossible哦

  • 0
    @ 18 年前

    数据太弱

  • 0
    @ 18 年前

    a[d]表示高度相差d时高的那一堆的最大高度

    然后开始dp,a[0]就是答案

  • 0
    @ 18 年前

    有了巧妙的DP方程,还要注意判断.

  • 0
    @ 18 年前

    我的DP很垃圾...O(3*100*1000*1000)的那种

  • 0
    @ 18 年前

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    Blaze评测.

    那个状态方程我推了一下午...

  • 0
    @ 18 年前

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    dp题,虽然很弱智,但很繁琐,我的AC率~~~~~~~~~~~~~~~~~~~~~~

  • 0
    @ 18 年前

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    DP,就四种情况

  • 0
    @ 18 年前

    f表示前i个水晶建成高度差为j的双塔中矮塔的高度

    有谁能告诉我这是怎么想到的吗?

    我开始想成了f表示第i个到第j个是否可以建成高度k的一座塔,然后看是否有某两个不相交区间的某个k值都为true,或者某个区间内该区间内水晶高度和的一半可以达到,则表示可以建成该高度的双塔,结果错了4个点

  • 0
    @ 18 年前

    编译通过...

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

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

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

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

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

     ├ 错误行输出

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

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

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

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

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

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

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

    真的有必要用各位大牛说的那种dp????

  • 0
    @ 18 年前

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    天啊``。。。。。

  • 0
    @ 18 年前

    F[i][j]=max{

    F[j],

    F[j-h[i]],

    F[j+h[i]]+h[i],

    F[h[i]-j]+h[i]-j}

    不过判断条件貌似很烦杂.........

  • 0
    @ 18 年前

    碰到坏机,二维背包过不了.

    要充分利用条件才行.

  • 0
    @ 18 年前

    碰到坏机,二维背包过不了.

    要充分利用条件才行.

  • 0

    最优性不明显的DP

    用boolean型数组计算

  • 0

    因为所有水晶总和不超过2000,所以两座塔的总情况最多2000*2000,所以....

  • 0
    @ 18 年前

    DP。。。。。。。

    f表示前i块水晶搭的两座高度差为j的塔中较矮塔高度

    f=max{f,f,f,f+a[i]-j}(2

  • 0
    @ 18 年前

    补充一个,注意水晶放在低塔时,低塔有可能成了高塔,为此WA了N次.....

信息

ID
1037
难度
6
分类
动态规划 | 背包 点击显示
标签
(无)
递交数
10587
已通过
2753
通过率
26%
被复制
17
上传者