HDU 1074 Doing Homework
2016-04-10 20:48
260 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1074
题意:有n个作业待做,每个作业都有用时和期限,如果做完的时候超过了期限,就要扣超出期限时间的分数,问怎么安排做作业的顺序,可以使得扣分最少,如果有多种方案,输出字典序最小的。
思路:状态压缩Dp,n<=15,用二进制表状态,每一位对应一科作业,如果为0,则还没做,为1,则已做过。dp[i],表示当前作业完成状态为i时的最小扣分,那么答案就是dp[(1<<n) - 1]。转移的时候去枚举作业j,去求当前状态i的上一个状态,更新答案。这里枚举j的时候应该倒着枚举,如果有多个j可以达到一样的效果,那么这里肯定是编号较大的优先(字典序越大),由于j是当前状态中最后一个完成的,所以保证答案字典序最小。
题意:有n个作业待做,每个作业都有用时和期限,如果做完的时候超过了期限,就要扣超出期限时间的分数,问怎么安排做作业的顺序,可以使得扣分最少,如果有多种方案,输出字典序最小的。
思路:状态压缩Dp,n<=15,用二进制表状态,每一位对应一科作业,如果为0,则还没做,为1,则已做过。dp[i],表示当前作业完成状态为i时的最小扣分,那么答案就是dp[(1<<n) - 1]。转移的时候去枚举作业j,去求当前状态i的上一个状态,更新答案。这里枚举j的时候应该倒着枚举,如果有多个j可以达到一样的效果,那么这里肯定是编号较大的优先(字典序越大),由于j是当前状态中最后一个完成的,所以保证答案字典序最小。
相关文章推荐
- LeetCode *** 125. Valid Palindrome
- 关于hibernate使用log4j
- linux ssh -l 命令运用
- 网络基本功系列:细说交换机
- 数据库下载
- [置顶] MySQL5.7.9安装
- 快速排序的实现(两种)
- 【数位DP】[CQOI2016]手机号码
- Centos7 Ansible安装
- libcudnn.so.6.5:cannot open sharedobject file: No such file or directory
- 谁是真泛型
- Android - 十分钟理解手机适配 与 lib工程生成包
- 第六周进度报告
- 第四次作业
- 排序注意事项
- 常用的布局和View常用属性
- Eclipse更改主题,换个黑色的背景颜色吧,哈哈
- Ubuntu14.04安装nodejs
- 数据库的恢复
- [LeetCode-91] Decode Ways