/ Vijos / 题库 / 采药 /

题解

302 条题解

  • 0
    @ 2008-11-03 14:34:50

    var

    f:array[0..1000] of integer;

    t,m,i,j:integer;

    v:array[1..100] of integer; {value}

    c:array[1..100] of integer; {cost}

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

    begin

    if a>b then exit(a)

    else

    exit(b);

    end;

    procedure zeroonepack(cost,value:integer);

    var

    v:integer;

    begin

    for v:=t downto cost do

    f[v]:=max(f[v],f[v-cost]+value);

    end;

    begin

    readln(t,m);

    for i:=1 to m do

    readln(c[i],v[i]);

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

    for i:=1 to m do

    zeroonepack(c[i],v[i]);

    writeln(f[t]);

    end.

    0ms

    AC

  • 0
    @ 2008-11-02 16:20:20

    我晕 用贪心10分

  • 0
    @ 2008-11-02 10:36:25

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

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

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

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

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

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

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

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

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

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

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

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

    #include

    #include

    #include

    using namespace std;

    long g[301][3]={0},f[301][3001]={0};/*g[i][1]为价值,g[i][2]为耗费的时间*/

    long T=0,M=0;

    void in(void)

    { long i;

    //freopen("in.txt","r",stdin);

    //freopen("out.txt","w",stdout);

    scanf("%ld %ld",&T,&M);

    for(i=1;i

  • 0
    @ 2008-11-01 18:49:19

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program caiyao;

    var max:integer;

    i,m:1..1000;j,t:1..1000;

    a,w:array[1..100] of 1..100;

    f:array[0..10001] of integer;

    begin

    readln(t,m);

    for i:=1 to m do readln(a[i],w[i]);

    for j:=a[1] to t do f[j]:=w[1];

    for i:=2 to m do

    for j:=t downto a[i] do

    if f[j-a[i]]+w[i]>f[j] then f[j]:=f[j-a[i]]+w[i];

    max:=0;

    for j:=1 to t do

    if f[j]>max then max:=f[j];

    writeln(max);

    end.

    学会了动态第一题!

  • 0
    @ 2008-10-30 23:31:33

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    一次AC~~

  • 0
    @ 2008-10-29 19:27:48

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    这是最简单的背包问题了

    可以说是01背包的原题。

  • 0
    @ 2008-10-27 23:55:24

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    想当年,在我还不知道dp是什么的时候,我在这一题上选择了现在知道叫做贪心的算法……到现在还记得当时这题只过了1个数据,三题总分21分……

  • 0
    @ 2008-10-27 16:00:37

    什么也不了。。。这题。。。

    var

    t,m,v,c,i,j:longint;

    f:Array[0..1000] of longint;

    begin

    readln(t,m);

    for i:=1 to m do

    begin

    read(c,v);

    for j:=t-c downto 0 do

    if f[j]+v>f[j+c] then f[j+c]:=f[j]+v;

    end;

    writeln(f[t]);

    end.

  • 0
    @ 2008-10-23 23:05:16

    yun,tong yang de cheng xu ti jiao liang bian fen shu bu tong!

    Why??

  • 0
    @ 2008-10-23 19:51:20

    记录号 Flag 得分 记录信息 环境 评测机 程序提交时间

    R957993 Unaccepted 20 From 蔡_不菜-

      P1104 CPP Vijos Dragon 2008-10-23 19:49:13

    From zhouyc

    采药 全国青少年信息学奥林匹克分区联赛 (NOIp) 竞赛原题

    编译通过...

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

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

     ├ 错误行输出

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

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

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

    #include

    using namespace std;

    main()

    {

    int t,j,m,i;

    cin>>t>>m;

    int a[m+1],b[m+1],dp[1001][101];

    for (i=0;i>b[i];

    for (i=1;i

  • 0
    @ 2008-10-21 22:17:19

    #include

    using namespace std;

    main()

    {

    int s,m,i,j;

    cin>>s>>m;

    int t[m+1],v[m+1],c;

    for(i=1;i>t[i]>>v[i];

    for(i=0;i

  • 0
    @ 2008-10-21 19:15:45

    Nov.Demon

  • 0
    @ 2008-10-20 23:12:35

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    01背包哈哈,小菜鸟的第十次AC!!大家不要笑呀,我会努力的!

  • 0
    @ 2008-10-20 15:19:40

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    for i:=1 to m do

    for j:=n downto a[i] do

    if c[j]

  • 0
    @ 2008-10-16 16:30:39

    难度2?。。

    program medic;

    var

    t,m,i,j:longint;

    time,value:array[1..100] of longint;

    a:array[0..1000] of longint;

    begin

    assign(input,'medic.in');

    reset(input);

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

    readln(t,m);

    for i:=1 to m do readln(time[i],value[i]);

    for i:=1 to m do

    for j:=t downto time[i] do

    begin

    if a[j]

  • 0
    @ 2008-10-14 21:07:22

    var

    t,n,i,j,time,v:longint;

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

    f:array[0..100000] of longint

    begin

    readln(t,n);

    for i:=1 to n do

    begin

    readln(time,v);

    for j:=t downto time do

    if f[j]

  • 0
    @ 2008-10-13 22:07:48

    var a,b,f:array[0..1000]of integer;

    m,n,i,j:integer;

    begin

    read(m,n);

    for i:=1 to n do read(a[i],b[i]);

    for i:=1 to n do

    for j:=m downto a[i] do if f[j]n then n:=f[i];

    writeln(n);

    end.

  • 0
    @ 2008-10-13 20:24:03

    记录号 Flag 得分 记录信息 环境 评测机 程序提交时间

    R924171 Accepted 1 From O.G.Loc-

      P114 FPC Lora Temper 28-1-13 2:22:39

    From zhouyc

    采药 全国青少年信息学奥林匹克分区联赛 (NOIp) 竞赛原题

    编译通过...

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

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

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

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

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

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

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

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

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

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

    Accepted 有效得分:1 有效耗时:ms

  • 0
    @ 2008-10-11 12:16:21

    var

    t,m,i,j,a,b:integer;

    w:array[0..1000] of integer;

    begin

    readln(t,m);

    fillchar(w,sizeof(w),0);

    for i:=1 to m do begin readln(a,b);

    for j:=t-a downto 0 do

    if (w[j]+b)>w[j+a] then w[j+a]:=w[j]+b;

    end;

    writeln(w[t]);

    end.

    简单的0/1背包,怎能难倒我燕麦,是吧~O(∩_∩)O~

  • 0
    @ 2008-10-08 05:57:24

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    当年noip我背标程,结果搞反两个变量,悔恨啊。

信息

ID
1104
难度
4
分类
动态规划 | 背包 点击显示
标签
递交数
16824
已通过
6527
通过率
39%
被复制
38
上传者