小P的故事——神奇的发票报销

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

为响应党的号召,小P所在的大学现在严格规范报销制度,禁止铺张浪费。特作如下规定:允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。
现在老师决定把这报销发票的重任交付于小P,给他一沓发票,让他找出可以报销的、不超过给定额度的最大报销额。小P能成功完成组织交给他的任务吗?显然不能啊、、所以还得靠你啊、、、

输入

测试输入包含若干测试用例。

每个测试用例的第1行包含两个正数 Q 和 N,其中 Q 是给定的报销额度,N(<=30)是发票张数。随后是 N 行输入,每行的格式为:
m  Type_1:price_1  Type_2:price_2 ... Type_m:price_m
其中正整数 m 是这张发票上所开物品的件数,Type_i 和 price_i 是第 i 项物品的种类和价值。
物品种类用一个大写英文字母表示。
当N为0时,全部输入结束,相应的结果不要输出。

输出

对每个测试用例输出1行,即可以报销的最大数额,精确到小数点后2位。

示例输入

200.00 3
2 A:23.50 B:100.00
1 C:650.00
3 A:59.99 A:120.00 X:10.00
1200.00 2
2 B:600.00 A:400.00
1 C:200.50
1200.50 3
2 B:600.00 A:400.00
1 C:200.50
1 A:100.00
100.00 0

示例输出

123.50
1000.00
1200.50
01背包:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int dg[5000000];
int main()
{int w[50];int n,m,j,i,k,x,y;int a,b,c,flag,s;double q,z,g;char str;while(scanf("%lf %d",&q,&n),n){k=0;y=q*100;while(n--){a=0;b=0;c=0;s=0;flag=0;scanf("%d",&m);while(m--){getchar();scanf("%c:%lf",&str,&z);if(str=='A')a+=z*100;else if(str=='B')b+=z*100;else if(str=='C')c+=z*100;elseflag=1;if(a>60000||b>60000||c>60000)flag=1;}s=a+b+c;if(s<=100000&&flag!=1){w[k++]=s;}}memset(dg,0,sizeof(dg));for(i=0;i<k;i++){for(j=y;j>=w[i];j--){if(dg[j]<dg[j-w[i]]+w[i])dg[j]=dg[j-w[i]]+w[i];}}g=(dg[y]*1.0)/100;printf("%.2lf\n",g);}return 0;
}

转载于:https://www.cnblogs.com/jiangyongy/p/3971650.html

[2774]小P的故事——神奇的发票报销 (sdut)相关推荐

  1. 小P的故事——神奇的换零钱 背包

    小P的故事--神奇的换零钱 题目描述 已知A国经济很落后,他们只有1.2.3元三种面值的硬币,有一天小P要去A国旅行,想换一些零钱,小P很想知道将钱N兑换成硬币有很多种兑法,但是可惜的是他的数学竟然是 ...

  2. SDUTOJ 2777 小P的故事——神奇的换零钱 背包

    小P的故事--神奇的换零钱 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 已知A国经济很落后,他们只有1.2.3元三种面值的硬币 ...

  3. 小P的故事——神奇的Dota

    小P的故事--神奇的Dota Poblem Description 小P非常喜欢玩dota,不分昼夜的玩, 结果他连做梦也都是里面的画面,一天晚上小P刚躺下就做了一个神奇的梦... 不死族的巫妖王发工 ...

  4. 小P的故事——神奇的换零钱

    小P的故事--神奇的换零钱 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 已知A国经济很落后,他们只有1.2.3元三种面值的硬币 ...

  5. 小P的故事——神奇的Dota(完全背包)

    Problem Description 小P非常喜欢玩dota,不分昼夜的玩 ,结果他连做梦也都是里面的画面,一天晚上小P刚躺下就做了一个神奇的梦... 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的 ...

  6. 小printf的故事(未完待续)

    小printf的故事 这篇文章的原文来自:英文原文 作者仿照<小王子>中的情节,生动有趣的阐述了小printf从编程小白到专家的成长历程.这是我第一次尝试翻译文章,肯定有很多不足之处,情不 ...

  7. asp.net多图片上传案例_会计小明的故事-成本核算案例篇

    因涉及成本核算案例篇,所需要的图表比较多,但是知乎不同于微信可以直接将文档图表复制过来,知乎专栏文章,所有图表必须先截图,然后以图片形式展示.但是成本核算案例图表实在是太多,一一截图,一则影响整体观感 ...

  8. HDU 4505 小Q系列故事——电梯里的爱情

    小Q系列故事--电梯里的爱情                                                                                   Tim ...

  9. hdu 4501 小明系列故事——买年货 多重背包

    小明系列故事--买年货                                                                          Time Limit: 500 ...

最新文章

  1. 用js判断时间的先后顺序
  2. spring核心功能包中已经包含了cglib功能
  3. unity 3d物体描边效果_从零开始的卡通渲染描边篇
  4. 对VMware自动安装linux系统说“不”!
  5. 思科IPS系统的bypass mode
  6. 技嘉主板开机代码15_技嘉TRX40 AORUS MASTER开箱评测:16+3相直出供电太可怕
  7. Leetcode 513 javascript
  8. 029、JVM实战总结:大厂面试题:最新的G1垃圾回收器的工作原理,你能聊聊吗
  9. Linux 软件源介绍
  10. 华为手机如何更新鸿蒙系统_华为鸿蒙系统怎么升级?升级鸿蒙系统步骤
  11. [转]PCI与PCIe
  12. 马哥教育N38第二周作业
  13. HDU 5956 The Elder(斜率优化DP)
  14. 震惊!没想到你居然是这样的for循环(UC打钱!)
  15. Vue给每个v-for的元素设置不同的点击事件
  16. 假期如何学java_假期学习javaWeb每日笔记
  17. Mybatis应用学习(4)——延迟加载
  18. 编辑时英文出现大间隔
  19. mysql制作搜索引擎_MySQL 实现一个简单版搜索引擎,真是绝了!
  20. 出走的门徒之三——小红书郄小虎:穿越人心的迷雾

热门文章

  1. 我看过的编译原理方面的好文章
  2. PAT甲级(Advanced Level)真题-- 1062 To Buy or Not to Buy
  3. python迭代列表_Python迭代列表中列的元素
  4. 管理距离 路由与交换_动态路由选择原理(距离矢量路由协议RIP)
  5. 2021惠阳一中高考成绩查询,惠阳一中实验学校2019高考成绩喜报、本科重本高优上线人数...
  6. 浅谈Java SE、Java EE、Java ME三者的区别
  7. iOS网络缓存扫盲篇
  8. java实现登录注册案例_Java基于IO版实现用户登录注册的案例
  9. autojs开启悬浮窗权限_微信悬浮窗功能普及?甚至更胜一筹
  10. pythonjs语法_Python语法精解:JSON语法