00:00:00
每日闲话
- 去还没干的篮球场,打篮球,鞋子全湿了,还bzd是否喝到了一些“篮球场水”...
今天看到了几句很好的话:
dp 的优化基本就是对着原来的代码做等价变形。
对于这种区间覆盖问题大部分情况是贪心,小部分情况是DP,还有极少部分是网络流
练题
Hot Start Up
思路
对于我来说非常难想啊。
一、首先看
时间复杂度为
接着就玄妙了,可以想到两个 CPU 中肯定有一个是
然后,让我们进发这个问题的“硬版本”,
Too Many Segments
思路
这题就直入正解,跟闲话中的一样,这题考虑贪心,并用优先队列(堆)去维护,对于当前点
拓展
关于优先队列的排序:
cpp
struct Node {
int l,r;
int id;
} a[N];
struct cmp {
inline int operator () (const Node& x, const Node& y) const {
return x.r<y.r;
}
};
priority_queue<Node,vector<Node>,cmp> q;这里由于 priority_queue 全部和 sort 等是相反的,且默认是大根堆。
这代码里的 cmp 里虽然定义是 (口胡解释)。详细见文章,其中有讲。
非常nice的文章: