http://acm.hdu.edu.cn/showproblem.php?pid=3449

这个题AC的有点稀里糊涂(是1A过的),采用的01背包的方法;

思路:定义了两个数组用来存储最终结果和但购买这一组的篮子是的价值,然后a[j]=max(a[j],b[j-link[i].pi]);

把最终结果给a[],每次找完一组的时候更新一下;

View Code

 1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 #include<cstdlib> 5 #include<cstdio> 6 using namespace std; 7 int a[100010],b[100010]; 8 struct node 9 {10     int pi;11     int num;12     int price[15];13     int vlaue[15];14 }link[55];15 int main()16 {17     int n,s,i,j,k;18     while(scanf("%d%d",&n,&s)!=EOF)19     {20         for(i=0;i<=s;i++)21         a[i]=b[i]=0;22        for(i=1;i<=n;i++)23        {24         scanf("%d%d",&link[i].pi,&link[i].num);25         for(j=1;j<=link[i].num;j++)26         scanf("%d%d",&link[i].price[j],&link[i].vlaue[j]);27        }28        for(i=1;i<=n;i++)29        {30            for(j=0;j<=s;j++)31            b[j]=a[j];32            for(j=1;j<=link[i].num;j++)33            for(k=s;k>=link[i].price[j];k--)34            if(b[k]<b[k-link[i].price[j]]+link[i].vlaue[j])35            b[k]=b[k-link[i].price[j]]+link[i].vlaue[j];36            for(j=s;j>=link[i].pi;j--)37            {38                a[j]=max(a[j],b[j-link[i].pi]);39            }40        }41        printf("%d\n",a[s]);42     }43 }

转载于:https://www.cnblogs.com/LT-blogs/archive/2011/11/25/2263838.html

hdu 3449 Consumer 01背包相关推荐

  1. HDU 2639(01背包求第K大值)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2639 Bone Collector II Time Limit: 5000/2000 MS (Jav ...

  2. HDU - 3466(01背包理解)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3466 题意:给你一些钱 m ,然后在这个国家买东西, 共有 n 件物品,每件物品价格P价值V还有一个很 ...

  3. Jam's balance HDU - 5616 (01背包基础题)

    Jim has a balance and N weights. (1≤N≤20) The balance can only tell whether things on different side ...

  4. hdu 5501(贪心+01背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5501 现在有A1,B1,C1和A2,B2,C2这两道题,如果先做1再做2的得分是A1-B1*C1+A2 ...

  5. hdu 1881(简单01背包)

    毕业bg Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Des ...

  6. HDU 3449 Consumer

    这是一道依赖背包问题. 背包问题通常的解法都是由0/1背包拓展过来的,这道也不例外. 我最初想到的做法是,由于有依赖关系,先对附件做个DP,得到1-w的附件背包结果f[i]表示i花费得到的最大收益,然 ...

  7. HDu 3449 (有依赖的01背包) Consumer

    题意: 有n件物品,对应有不同的价格和价值,这是典型的01背包.但现在有了一个限制,要买物品先买能装这件物品的特定的盒子,盒子的价值为0 代码理解得还不是太好,感觉这是一个"二重" ...

  8. hdu 3449 有依赖性的01背包

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3449 Consumer Description FJ is going to do som ...

  9. hdu 3732(01背包转多重背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3732 思路:这么大的数据,用01背包肯定会TLE的,01背包转多重背包..最多也就11*11=121件 ...

最新文章

  1. Android 人脸识别
  2. android BiConsumer 使用 ClassNotDefException
  3. 在git中出现中文乱码的解决方案
  4. 身为DATASHUO大数据工程师,我亲手制作的2016年第一期数据报告
  5. DHL:jQuery框架学习使用总结,插件,继续中...
  6. ui设计基础_我不知道的UI设计的9个重要基础
  7. 对人工智能神经网络的认识
  8. Express-router
  9. 安装FFmpeg后,发现没有生成ffplay的解决办法
  10. vmware esxi主机经常出现的警示“vsphere distributed switch mtu支持状态, vlan中继状态”求大神回复。
  11. Python中出现“TabError: inconsistent use of tabs and spaces in indentation”
  12. Linux 命令(104)—— crontab 命令
  13. 低功耗微波雷达模块,LED庭院灯智能感应,雷达传感器助力节能减排
  14. 软件能力成熟度模型(CMMI)
  15. Python爬虫的应用:统记词频
  16. macOS更新失败解决
  17. 冒泡算法的Java实现
  18. 全球物料管理MMOG/LE体系培训资料(最新)
  19. 七夕送女朋友什么礼物好?不会送礼的男生速看!
  20. iOS开发系列--数据存取

热门文章

  1. AI技术加持,让协作机器人更安全
  2. 视频监控成AI芯片主战场,海康威视和大华股份占据半壁江山
  3. Fast.ai推出NLP最新迁移学习方法「微调语言模型」,可将误差减少超过20%!
  4. 后浪优秀!21 岁小伙兼职程序员养家,大三存款达 6 位数
  5. 惊艳了!升级版的 APDrawing,秒让人脸照变线条肖像画
  6. 窃隐私、放高利贷,输入法的骚操作真不少!
  7. 知乎热帖:Qt 这么强大为什么火不起来?
  8. Ubuntu 16.04 amd64 bond mode6 配置
  9. 无限极分类原理与实现
  10. Mac 装Sequel pro 连接 Mysql 8.0 失败、登录不了、loading问题