hdu1864 最大报销额(01背包)
转载请注明出处:http://blog.csdn.net/u012860063
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1864
m Type_1:price_1 Type_2:price_2 ... Type_m:price_m
当中正整数 m 是这张发票上所开物品的件数,Type_i 和 price_i 是第 i 项物品的种类和价值。物品种类用一个大写英文字母表示。当N为0时,所有输入结束,对应的结果不要输出。
该题要注意的就是每张单子A种类的总和不能大与600,相同B,C类也一样,刚開始我就错了这里,还有注意假设不是A,B,C类的不能够报销;
该题就是要把浮点型变成整数这样才干用01背包,这里就仅仅要乘以100就能够了。
代码例如以下:
#include <cstdio>
#include <cstring>
#define M 3000057
//因为每张发票不超过1000,最多30张,扩大100倍数后开这么大就可以
int f[M],val[M],flag[47];
int max(int a,int b)
{if(a > b)return a;else return b;
}
int main()
{double Q,x;int X,q,t,n,i,j,k,l,N,m;char C;while(scanf("%lf%d",&Q,&N) && N ){q = (int)(Q*100);//将小数转换为整数memset(flag,0,sizeof(flag));memset(val,0,sizeof(val));memset(f,0,sizeof(f));l = 0,k=0;for(i = 0 ; i < N ; i++){scanf("%d",&m);int A1=0,B1=0,C1=0;for(j = 0 ; j < m ; j++){scanf("%*c%c:%lf",&C,&x);X=(int)(x*100);if(C!='A' && C!='B' && C!='C'){flag[i] = 1;continue;}if(C == 'A')A1+=X;else if(C == 'B')B1+=X;else if(C == 'C')C1+=X;if(X>60000 || A1>60000 || B1>60000 || C1>60000){flag[i] = 1;continue;}if(flag[i] == 1)continue;else{val[k]+=X;}}if(flag[i]!=1)k++;elseval[k] = 0;}for(i = 0 ; i < k ; i++)//01背包{for(j = q ; j >= val[i]; j--){f[j] = max(f[j],f[j-val[i]]+val[i]);}}printf("%.2lf\n",f[q]/100.0);}return 0;
}
hdu1864 最大报销额(01背包)相关推荐
- HDU1864 最大报销额 01背包
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Prob ...
- hdu1864最大报销额 (01背包)
Problem Description 现有一笔经费可以报销一定额度的发票.允许报销的发票类型包括买图书(A类).文具(B类).差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品 ...
- HDU - 最大报销额(01背包|贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1864 Time Limit: 1000/1000 MS (Java/Others) Memory Li ...
- hdu 1864 最大报销额01背包dp
最大报销额 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Subm ...
- HDU1864 最大报销额【0-1背包】
最大报销额 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- hun暑期实训 最大报销额(01背包) 关于动态内存分配的new与delete
文章目录 题目 思路 AC代码1 AC代码2 new与delete 题目 思路 这个题主的难点要有三个方面. 第一个方面是数据不好输入.题目中所给的数据都是做题需要的数据,而且是需要分开存储的.对于字 ...
- hdoj 1864 最大报销额 【01背包】||【dfs】
最大报销额 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- HDU 1864 最大报销额 (dp 01背包)
最大报销额 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- 最大报销额 HDU - 1864(DP+01背包)
最大报销额 HDU - 1864 点击跳转↑ 题设:多组输入,每组输入一对Q和N,分别代表当前的公费,和需要报销的账单总数.接下来N行,每行开始一个m,接下来是m项物品的名称和价格.求:在所有符合报销 ...
- HDUOJ1864最大报销额(01背包)
最大报销额 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissio ...
最新文章
- 清华官宣:前百度总裁张亚勤正式加盟清华大学
- PLSQL的截取函数
- 今夜,我们一起缅怀对美好事物痴迷的青葱岁月
- SVN报错working copy is not uptodate
- 如何获得CSDN访问量和积分
- 请问运行py文件的时候怎么样可以不让那个黑框一闪...
- c语言gs迭代法解方程,ex1_7-GS迭代法例题源程序及注释.pdf
- “21天好习惯“第一期-2
- Coursera机器学习课后作业Matlab代码(1~9周)
- 1.5(java学习笔记)this关键字
- MDM数据质量应用说明
- Win10系统完全卸载52好压的方法
- 【脚本】去掉win7快捷方式的小箭头
- 《道德经》全文 (马王堆出土帛书版)
- 数字IC设计工程师笔试面试经典100题
- 如何屏蔽掉某网址不能访问
- 【每天学点管理】——员工激励
- 对比语法错误、语义错误以及运行时错误
- 耶鲁大学 博弈论(Game Theory) 笔记4-足球比赛与商业合作之最佳对策
- SAP系统中各Client设置说明
热门文章
- ASE V15.7下载地址
- 一位软件工程师的6年总结收藏
- Android 调整控件位置和大小(以textView为例,并设置字体与背景颜色)
- 为什么分布式数据库中不使用uuid作为主键?
- 计划任务,机器码与注册码,Web服务
- android View.getWidth() 和View.getHeight()返回0
- python thrift 示例
- Forms验证中的roles(转)
- MySQL安装配置详解(5.5 For Windows)
- 输入三个字符串,按由小到大的顺序输出