260 条题解

  • 0
    @ 2008-11-08 15:26:29

    编译通过...

    ├ 测试数据 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---|N),一个记用的时间(T---|1)。

    二十分钟搞定,一次性ac。

    原来让我无比头痛的背包,现在看了是如此的简单。进步了啊!

    继续努力ing

  • 0
    @ 2008-11-04 17:56:31

    把t的范围看成100了,提交了3次,唉......

  • 0
    @ 2008-11-03 17:17:30

    编译通过...

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

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

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

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

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

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

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

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

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

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

    #include

    int f[1000][1010];

    int love[1100];

    int cost[1100];

    int n,time;

    int max(int a,int b){if(a > b)return a;else return b;}

    void dp();

    int main()

    {

    int i,j;

    scanf("%d",&n);

    scanf("%d",&time);

    for(i = 1; i = cost[i])

    f[i][j]=max(f[j],f[j-cost[i]]+love[i]);

    else

    f[i][j] = f[j];

    }

    }

  • 0
    @ 2008-11-03 09:26:40

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    同采药哦

    var w,t:array[1..100]of longint;

    f:array[0..100,0..1000]of longint;

    n,i,j,ts:longint;

    begin

    readln(n);readln(ts);

    for i:=1 to n do readln(w[i],t[i]);

    for i:=1 to n do

    for j:=ts downto 1 do begin

    f:=f;

    if(j>=t[i])and(f

  • 0
    @ 2008-11-03 07:43:30

    01背包

    天啊~~

    水。。。。

    霍霍~~

    vijos上允许用数学库哦~~~

    真是很方便~拿这道题做了实验了~

  • 0
    @ 2008-11-01 23:50:57

    无可否认,人品极低,数组开小....

  • 0
    @ 2008-11-01 22:20:15

    问个问题,这道题和采药有区别吗?

    不是抄袭吗?

    水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水

    水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水水

  • 0
    @ 2008-11-01 10:34:31

    var n,t,i,j,c,v:integer;

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

    begin

    readln(n);

    readln(t);

    for i:=1 to n do

    begin

    readln(c,v);

    for j:=t downto v do begin

    if (a[j-v]+c)>a[j] then

    a[j]:=a[j-v]+c;

    end;

    end;

    writeln(a[t]);

    end.

  • 0
    @ 2008-10-28 09:05:11

    0/1背包~~第一次交完,发现F数组没开LONGINT,第二次交完,发现F的上限f[j] then f[j]:=f[j-c[i]]+l[i];

    end;

    write(f[t]);

    end.

  • 0
    @ 2008-10-27 23:58:05

    囧死了.......

    I,J弄混...

  • 0
    @ 2008-10-27 19:40:14

    各位大牛,麻烦帮我看看程序那儿错了,0分

    #include

    using namespace std;

    int max(int x,int y)

    {

    if (x>y) return x;return y;

    }

    main()

    {

    int n,m,i,j;

    cin>>n;cin>>m;

    int t[n+1],l[n+1],v[n+1][m+1];

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

    for (i=1;i

  • 0
    @ 2008-10-27 18:22:46

    #include

    using namespace std;

    int s,m,i,j,t[100],v[100],dp[1000]={0};

    int main(){

    cin>>m>>s;

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

    for(i=0;i0;j--){

    if(t[i]dp[j]) dp[j]=v[i]+dp[j-t[i]];

    }

    }

    cout

  • 0
    @ 2008-10-26 17:50:23

    很囧的是 我把 时间 和 喜欢度 读反了

  • 0
    @ 2008-10-21 12:52: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
    @ 2008-10-20 21:02:35

    编译通过...

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

    var n,t,i,j,c,v:integer;

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

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

    begin

    if a>b then exit(a) else exit(b);

    end;

    begin

    readln(n);

    readln(t);

    for i:=1 to n do

    begin

    readln(c,v);

    for j:=t downto v do

    f[j]:=max(f[j],f[j-v]+c);

    end;

    writeln(f[t]);

    end.

  • 0
    @ 2008-10-20 18:06:02

    var n,tim,i,j,try:integer;

       maxx:longint;

       a:array[0..101,1..2]of integer;

       mx:array[0..1001]of longint;

    begin

    read(n,tim);

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

    for i:=1 to n do

    for j:=tim downto a do

    if mx[j-a]+a>mx[j] then mx[j]:=mx[j-a]+a;

    write(mx[tim]);

    end.

  • 0
    @ 2008-10-20 17:33:39

    编译通过...

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

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var n,i,j,t:longint; time,f:array[0..1000] of longint;

    c:array[0..100] of longint;

    Begin

    readln(n); readln(t);

    for i:=1 to n do readln(c[i],time[i]);

    for i:=1 to n do

    for j:=t downto time[i] do

    if f[j]

  • 0
    @ 2008-10-14 15:40:51

    var n,tim,i,j,try:integer;

    maxx:longint;

    a:array[0..101,1..2]of integer;

    mx:array[0..1001]of longint;

    begin

    read(n,tim);

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

    for i:=1 to n do

    for j:=tim downto a do

    if mx[j-a]+a>mx[j] then mx[j]:=mx[j-a]+a;

    write(mx[tim]);

    end.

信息

ID
1025
难度
4
分类
动态规划 | 背包 点击显示
标签
(无)
递交数
9933
已通过
4050
通过率
41%
被复制
15
上传者