POJ 1907 Work Reduction
来源:互联网 发布:3322动态域名linux 编辑:程序博客网 时间:2024/05/17 23:40
Work Reduction
Time Limit: 1000MS Memory Limit: 30000KTotal Submissions: 1292 Accepted: 438
Description
Paperwork is beginning to pile up on your desk, and tensions at the workplace are starting to mount. Your boss has threatened to fire you if you don't make any progress by the end of the day. You currently have N units of paperwork on your desk, and your boss demands that you have exactly M units of paperwork left by the end of the day.
The only hope for you now is to hire help. There are various agencies which offer paperwork reduction plans:
For $A they will reduce your paperwork by one unit.
For $B they will reduce your entire paperwork by half (rounding down when necessary).
Note that work can never be reduced to less than 0.
Your task now is to produce a sorted table of agency names and their respective minimum costs to solve your workload problem.
The only hope for you now is to hire help. There are various agencies which offer paperwork reduction plans:
For $A they will reduce your paperwork by one unit.
For $B they will reduce your entire paperwork by half (rounding down when necessary).
Note that work can never be reduced to less than 0.
Your task now is to produce a sorted table of agency names and their respective minimum costs to solve your workload problem.
Input
The first line of input consists of a single positive integer representing the number of cases to follow. Each case begins with three positive integers separated by spaces: N - your starting workload, M - your target workload, and L - the number of work reduction agencies available to you, (1 <= M <= N <= 100000, 1 <= L <= 100). The next L lines have the format "[agency name]:A,B", where A and B are the rates as described above for the given agency. (0 <= A,B <= 10000) The length of the agency name will be between 1 and 16, and will consist only of capital letters. Agency names will be unique.
Output
For each test case, print "Case X", with X being the case number, on a single line, followed by the table of agency names and their respective minimum costs, sorted in non-decreasing order of minimum costs. Sort job agencies with identical minimum costs in alphabetical order by agency name. For each line of the table, print out the agency name, followed by a space, followed by the minimum required cost for that agency to solve your problem.
Sample Input
2100 5 3A:1,10B:2,5C:3,11123 1122 5B:50,300A:1,1000C:10,10D:1,50E:0,0
Sample Output
Case 1C 7B 22A 37Case 2E 0A 1D 1C 10B 50
Source
Waterloo local 2004.06.12
/*典型的贪心问题,很好证明:因为每次总的工作量的一半采用什么策略,不会影响
剩下一半工作量的最优值
假设当前要处理的工作量是CurWork,当前的花费是total那么贪心策略的选取是:
比较B和(CurWork - int(CurWork / 2))×A的大小,哪个小就将total加上哪个
然后CurWork = int(CurWork / 2)
!注意当(CurWork / 2) < M时只能采用一个一个取的策略,否则如果采取取半的策略,
得到的剩余工作量将小于M,不符合题意
*/
- POJ 1907 Work Reduction
- UVa 10670 - Work Reduction
- UVa 10670 - Work Reduction
- uva 10670 - Work Reduction
- 10670 - Work Reduction
- UVaOJ10670 - Work Reduction
- UVA 10670 Work Reduction
- UVA 10670 - Work Reduction
- uva 10670 - Work Reduction
- uva 10670 Work Reduction
- UVa:10670 Work Reduction
- uva 10670 - Work Reduction
- UVA10670-Work Reduction
- UVa 10670 - Work Reduction
- uva 10670 Work Reduction
- uva10670 - Work Reduction
- uva10670 - Work Reduction(减轻工作)
- [贪心&&排序]UVA10670 Work Reduction
- esriCore.olb从8.3到9.0的细分解决
- AE92+VC开发时遇到'enum' type redefinition问题!
- Tchar.h
- 用VC进行COM编程所必须掌握的理论知识
- 报This application is currently offline……解决方法
- POJ 1907 Work Reduction
- 设计模式笔记(6)---原型模式(创建型)
- 当前进度和规划
- 我是水瓶
- FDSFDS
- C#: 如何ListView 设置行高,不是办法的办法【转】
- QQ会员专用头像大抢劫!
- C# 通过文件路径获取文件名、扩展名等
- C# 实现获取文件夹大小的源代码