题目链接

几个月之前做的一个题了,开始想时就看出应该是个01背包问题,又发现不太一样,貌似应该是有种贪心策略,把最大的挑出来最后还有5块钱的再买,剩下的体积用01背包去求最优选择,当时WA了3次,以为算法有问题,难道用o(n^3)算法吗。。枚举每一种物品然后用01背包的取得的最优解+物品的价值,然后最后找最大的。。感觉复杂度有点高啊。。。然后就放下了,今天又想起来了,搜了下题解,原来是饭卡开始的时候<5 的时候 情况漏了。。。。我晕。。。。

 1 #include<stdio.h>
 2 #include<string.h>
 3 int p[1001],k[1001];
 4 int main()
 5 {
 6     int a,b,c,d,max,i,max1;
 7     while(scanf("%d",&a)!=EOF)
 8     {
 9         memset(k,0,sizeof(k));
10         if(a==0)break;
11         max=0;
12         d=1;
13         for(b=1; b<=a; b++)
14         {
15             scanf("%d",&p[b]);
16             if(max<p[b])
17             {
18                 max=p[b];
19                 d=b;
20             }
21         }
22         scanf("%d",&c);
23         for(b=1; b<=a; b++)
24         {
25             if(b!=d)
26             {
27                 for(i=c-5; i>=p[b]; i--)
28                 {
29                     if(k[i]<k[i-p[b]]+p[b])
30                         k[i]=k[i-p[b]]+p[b];
31                 }
32             }
33         }
34         max1=0;
35         for(b=1; b<=c-5; b++)
36         {
37             if(max1<k[b])
38                 max1=k[b];
39         }
40         if(c >= 5)//少了这个判断。。。
41         printf("%d\n",c-max1-max);
42         else
43         printf("%d\n",c);
44     }
45     return 0;
46 }

转载于:https://www.cnblogs.com/naix-x/archive/2012/07/21/2602380.html

HDU 2546 饭卡(贪心+DP)相关推荐

  1. hdu 2546 饭卡【贪心+01背包基础题】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=2546 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  2. HDU 2546 饭卡(01背包裸题)

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  3. HDU 2546 饭卡 01背包变形

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  4. hdu 2546 饭卡(P01-背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546 转载请注明出处:http://blog.csdn.net/u012860063 饭卡 Time ...

  5. HDU——2546 饭卡

    Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负) ...

  6. hdu 2546 饭卡——一道简单的 01背包

    今天讲的是动态规划,学长们拉了13道题让我们做一下,一下午大概4小时,做了5道题(还是太弱了 摊手) 题意: 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上 ...

  7. Hdu 2546 饭卡

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  8. hdu 2546 饭卡【01背包】

    题目链接:https://vjudge.net/contest/103424#problem/C 饭卡                                Time Limit: 5000/ ...

  9. hdu 2546 饭卡(01背包)

    题意:只要最后留下的钱够5元,就可以买下最贵的食物,使得余额最低,其他的钱的使用就是一个最大背包问题了. 代码: #include<iostream> #include<cstrin ...

最新文章

  1. RegeX —— 可视化正则表达式替换器
  2. 0基础学习ios开发笔记第二天
  3. P1967 货车运输
  4. (转载)关于IAP与APP互相跳转的实现
  5. cassandra生产监控_碎玻璃:诊断生产Cassandra问题
  6. php 日期转毫秒_【小技巧】 各种日期操作方法汇总
  7. ASP.NET 用户控件自定义属性、方法、事件
  8. AI开发者十问:10分钟了解AI开发的基本过程
  9. 关闭报错_Cydia Impactor工具各种报错提示的解决方法!
  10. python二进制反码例题_python中的进制转换和原码,反码,补码
  11. 请别拿程序员当工人使唤!
  12. 准备成立公司开发 app 外卖应用,怎么起步?
  13. 手动创建maven项目+cmd+webapp+tomcat
  14. MySQL基础教程4-SQL基础概念
  15. android webview 获取cookie,Android WebView 之Cookie
  16. editplus mysql模板_editplus下载
  17. Git添加用户名、密码、修改用户名密码
  18. win10电脑网络适配器Wireless-AC 9560 160MHz 感叹号解决方案
  19. 你的走路姿势正确吗?步态不对牵连多种疾病
  20. Omnipeek空口抓包(4):抓取路由器下的无线网络包

热门文章

  1. CCNA的全套标准实验
  2. SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
  3. 二叉树遍历的递归、非递归方法(前序、中序、后序,层序)——Java实现
  4. 【IM】关于最小二乘法及约束的理解
  5. 损失函数中正则化项L1和L2的理解
  6. 【数据平台】dataframe一列成多列
  7. Leetcode 347. 前K个高频元素 解题思路及C++实现
  8. 解决mysql“Access denied for user root@localhost”
  9. 快速上手RaphaelJS--RaphaelJS_Starter翻译(一)
  10. Python+selenium自动化:页面加载慢、超时加载情况下内容已经加载完毕的快速执行脚本解决方案,页面加载时间过长优化方案