200 条题解

  • 0
    @ 2008-12-29 13:14:48

    还是用集合好。。。

  • 0
    @ 2008-11-23 09:02:09

    编译通过...

    ├ 测试数据 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-11-14 00:25:01

    编译通过...

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

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

    ├ 测试数据 03:鸢刚?.. 0ms

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

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

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

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

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

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

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

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

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

    庆祝自己在VJ 的第90个AC 可能也是最后一个AC了

    判定背包+记录路径

    这里不推荐滚动数组,在记录路径时判断多解有一个比较方便的判断

    若逆推至第K个物品,当前重量为VK

    若f[k-1][vk] and f[k-1][vk-m[k]] = true 此时是有多解的。

    记录路径是可以使用字符串的,但注意:必须使用ansistring 这个问题挂了我4次。

    第3个点~很诡异~~

  • 0
    @ 2008-11-12 08:12:43

    编译通过...

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

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

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

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

     ├ 错误行输出

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

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

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

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

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

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

    同理...

  • 0
    @ 2008-11-06 18:55:53

    为什么自己的数据都能过,就是不能Ac。。

    大牛们有没有什么特殊的数据啊。。

  • 0
    @ 2008-11-06 17:08:08

    编译通过...

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

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

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

    ├ 测试数据 04:答案错误...程序输出比正确答案长

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

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

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

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

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

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

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

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

    那位大牛告诉我一下是为什么?

  • 0
    @ 2008-11-06 09:12:00

    编译通过...

    ├ 测试数据 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-11-05 12:57:51

    话说下面那个把记录刷得全红的2050的Unaccepted和100的有效得分是怎么同时得来的?

  • 0
    @ 2008-11-04 23:20:03

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    数据很变态,注意0和sum.....

  • 0
    @ 2008-11-04 18:18:10

    编译通过...

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

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

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

    ├ 测试数据 04:答案错误...程序输出比正确答案长

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

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

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

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

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

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

    谁能告诉我为什么....

  • 0
    @ 2008-10-29 20:26:48

    第5组数据多解,多达maxlongint以上

    所以if f[tot]>1 then writeln(-1);无效

  • 0
    @ 2008-10-28 19:16:10

    菜鸟

    请问why???

    if f=0

    才改变路径??

  • 0
    @ 2008-10-27 13:00:46

    数据没有问题

    记录路径的时候有点问题WA了一次

  • 0
    @ 2008-10-25 11:28:04

    ├ 测试数据 04:答案错误...

     ├ 标准行输出 3...

     ├ 错误行输出 0

    第四組是不是改了?咱機器上測43231的數據正確...

    其他貌似都對

  • 0
    @ 2008-10-23 10:39:20

    一维背包。用字符串记录路径即可

  • 0
    @ 2008-10-15 20:52:31

    此题又是恶心

    不知道第九个点怎么回事

    迷迷糊糊就AC了

    MAIN CODE[不要抄哦,做过手脚]

    其实就是一个背包记录路径,我曾经还研究过

    read(m,n);

    for i:=1 to n do

    begin

    read(a[i]);

    z:=z+a[i];

    end;

    z:=z-m;

    if z1

    then writeln(-1;

    writeln(z);

  • 0
    @ 2008-10-14 20:47:51

    题目理解错了 做了一个半小时

    再看一遍题目 10分钟ac

    真的是郁闷啊

    做题要看清题目啊

    切记切记

  • 0
    @ 2008-10-14 11:37:45

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    第101题

    并且庆贺N天不交题后的首次AC

  • 0
    @ 2008-10-11 11:14:40

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    这题快做死我了,说说思路把。

    状态转移方程if f[j]0 then f[j+a[i]]:=f[j+a[i]]+f[j];

    (只要不是傻子都应该会把)

    比较困难的是记录路径。现在提供一种猥琐的方法。

    用f数组记录当前数值有多少种情况

    用g数组记录当前数值是由哪一个数值推过来的,即前一个数值

    用h数组记录加上的这个数值是第几号。

    最后从f[m]倒着推回去就行了。

    *如果过程中遇到多个方案都能到一个数值,不要修改,用第一次走到的值就行。

    无法理解就请使用这个测试数据

    5

    1

    3

    5

    8

    4

    ans:1 2 3 4 5

    另外,测试数据中有存在

    1000

    2

    1

    2

    这种bug数据。因此需判断当Totalw无意义时,直接输出0;

    最后附上我的程序,虽然vijos不让附,但有时候调不出来确实让人很头疼。

    program p1071(input,output);

    var

    i,j,n,m,t:longint;

    a,s:array[1..100]of longint;

    f,g,h:array[0..100000]of longint;

    begin

    readln(t);

    readln(n);

    for i:=1 to n do begin readln(a[i]); inc(m,a[i]); end;

    m:=m-t;

    if m1 then writeln('-1');

    if f[m]=1 then for i:=j downto 1 do write(s[i],' ');

    end.

  • 0
    @ 2008-10-10 22:41:12

    第四个数据我自己测过是对的,但vijos就是不给我过,

    逼我cheat!!

信息

ID
1071
难度
7
分类
动态规划 | 背包 点击显示
标签
递交数
6302
已通过
1439
通过率
23%
被复制
13
上传者