首页 > 试题广场 >

钱老板赶工

[编程题]钱老板赶工
  • 热度指数:1798 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
【注意:本题按通过的Case比例给分】

钱老板去国外度了个假,刚回到公司就收到了 n 封催促工作完成的邮件。
每项工作都有完成截止日期 deadline,钱老板做每项工作都会花去cost天,而且不能中断。
请你帮钱老板安排一下完成工作的顺序,以减少总的工作推迟时间。


输入描述:
第一行包含一个正整数 n(1<=n<=20),表示工作数量。

接下来 n 行,每行包含两个整数,分别表示第 i 项工作的 deadline 和 cost。


输出描述:
一个数字,表示钱老板最少需要推迟几天才能完成所有工作。
示例1

输入

3
3 3
8 1
3 2

输出

2

说明

输入样例表示有 3 项工作。

第一项工作截止时间在第 3 天,需要 3 天时间完成。

第二项工作截止时间在第 8 天,需要 1 天时间完成。

第三项工作截止时间在第 3 天,需要 2 天时间完成。

因此合理的顺序是 1->3->2 或 3->1->2,均推迟 2 天。
头像 王清楚
发表于 2020-09-08 17:00:31
一开始看题还以为是个贪心,后来仔细看了一下发现并不是,然后发现任务数,就上状压dp了,可以用一个大于0,小于(1<<n)的数字表示做了哪些任务,比如一共有8个任务,数字 的二进制是00100110就表示做了第2,3,6个任务, 表示做了 代表的这些任务的的最小延迟天数。那其实是从以下 展开全文
头像 _luffy
发表于 2020-08-06 16:53:18
递归和迭代实现, python和C++实现. 方法相同, C++代码通过, python代码超时. 题目链接:https://www.nowcoder.com/questionTerminal/ec64f266f4c44c63a38d3d11024e5230?answerType=1&f=d 展开全文