poj3616 解题报告
来源:互联网 发布:冰川网络股票 编辑:程序博客网 时间:2024/05/29 08:24
poj 3616 Milking Time http://poj.org/problem?id=3616
题目大意,farmer John 要给女主牛 挤奶了。挤奶时间 N (1 ≤ N ≤ 1,000,000) hours,注意Bessie进了一间黑心企业,每次挤奶休息完R (1 ≤ R ≤ N)hours后,又可以挤。然后farmer John 有M个时间段,开始时间s,结束时间e,一旦开始就不能停下,直到挤完奶。在这些时间段里可以给Bessie挤奶,但每个时间段的效率不同,有个挤得多一点,有得少一点。现在你的任务是根据famer john的时间段,选择搭配起来最有效率的时间段来让Bessie产奶最多。
一开始,我想根据Bessie挤奶时间N来dp,定义dp[i]为第i个时刻里,产奶最多。但是,TLE后,发现N 能取 10^6,就算少一点,两层循环铁定超时了,只能换一种dp。
上网找解题报告,大家都是根据区间来dp。这样可以大大减少枚举次数。
定义dp[i] 第i个区间里,挤奶最多。
对区间按开始时间从小到大排序后,枚举i个区间,里面枚举小于i的区间。如果i-1个区间里的有某个区间的结束时间+休息时间 <= i区间的开始时间,比较。
定义一个区间的结构,当一个东西都多个属性,可以定义一个结构这样便于管理。为了方便,顺便重载小于运算符,这样可以直接调用stl 的sort函数。
以下是个人认为写得最好的解题报告,可能我理解力不行吧。不班门弄斧了:http://www.hankcs.com/program/cpp/poj-3616-milking-time.html,这个网站有很多解题报告,个人认为写得都很通俗易懂。
- poj3616 解题报告
- POJ3616 解题报告
- poj3616
- poj3616
- POJ3616
- poj3616
- poj3616
- poj3616
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- Antiprime解题报告
- expr解题报告
- 华容道解题报告
- 递归求阶乘
- mark好帖子
- 第35讲-项目一-另类求和
- eclipse pydev 装不上的原因 安装错误
- Centos7 epel源 eprepo源
- poj3616 解题报告
- TCP的三次握手和四次挥手
- Android调节屏幕亮度工具类BrightnessUtils
- 一些资料
- 解决 Eclipse+pydev安装配置找不到pydev的问题
- 【日常学习】【SPFA+SLF+LLL】codevs1021 玛丽卡题解
- 【C语言】22- 枚举
- Hadoop之——伪分布安装
- (10.1.3.4)UI设计,扁平化还是拟物化?