2016SDAU课程练习三1020

原创 2016年05月31日 08:26:29

1.题目编号:1020
2.简单题意:多重背包问题

有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用
总和不超过背包容量,且价值总和最大。
3.解题思路形成:f[i][v]=max{f[i-1][v-k*c[i]]+k*w[i]|0<=k<=n[i]}

4.感想:

5.AC代码:

#include<stdio.h>

#include<string.h>
int f[100001];
int main()
{
    int i,j,k,n,m,v,tot;
    int a[101];
    int b[101];
    while(scanf("%d%d",&n,&v),n||v)
    {
        for(i=0;i<n;i++)
            scanf("%d",&a[i]);
        for(i=0;i<n;i++)
            scanf("%d",&b[i]);
        memset(f,0,sizeof(f));
        f[0]=1;
        tot=0;
        for(i=0;i<n;i++)
        {
            if(a[i]*b[i]>=v)
            {
                for(j=a[i];j<=v;j++)
                    if(f[j-a[i]]&&!f[j])
                    {f[j]=1;tot++;}
                continue;
            }
            k=1;
            while(k<b[i])
            {
                for(j=v;j-k*a[i]>=0;j--)
                    if(f[j-k*a[i]]&&!f[j])
                    {f[j]=1;tot++;}
                   b[i]-=k;
                k<<=1;
            }
            for(j=v;j-a[i]*b[i]>=0;j--)
                if(f[j-a[i]*b[i]]&&!f[j])
                {f[j]=1;tot++;}
        }
        printf("%d\n",tot);
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

2016SDAU课程练习一1004 E

Problem E Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total S...

2016SDAU课程练习一Problem G

1题目编号:Problem G 2简单题意:(1)up一楼6s,down一楼4s,stop一楼5s。 (2)输入0时结束。3.解题思路形成过程:其一,由(2)知,需要对输入进行限...

SDAU 练习四1001 acm村庄建设最小长度问题

Problem A Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) There ar...

SDAU练习三 1003 棋子跳跃问题

                         &#...

SDAU 练习三 1024 商人与项目

Problem X Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total...

SDAU 练习三 1019 学院设备平分问题

Problem S Time Limit : 10000/5000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total...

SDAU 练习四1002 acm 艾迪画墨水问题

Problem B Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total ...

SDAU 练习三 1008 穿越大魔王的幽谷的问题

Problem H Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total ...

2016苹果秋季发布会黑马程序员曝iOS10.0版新课程

此前靠谱爆料大神evleaks曾表示苹果发布会将会在9月12日的那一周举办,但并没有确定是哪一天。不过后来又有消息人士称,按照苹果通常在周五发布新硬件的规律,最终发布会时间或会定格在9月16日。实际上...

2016程序设计基础(C语言)课程设计

Developed by Zhuxiaoxie Xiaoboren and Zhangcui经过几个星期的奋战,我们三人终于把课设弄完了,在体验了成功的快感的同时也感受到了debug的痛苦与煎熬,幸而...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)