![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
Mmm040403
这个作者很懒,什么都没留下…
展开
-
Sunscreen(poj3624)与Task(HDOJ4864)的比较-贪心
Sunscreen 要找最多的奶牛,所以从奶牛的角度考虑问题。将奶牛的min从大到小排序,对于每个奶牛,要找满足他条件的里面的防晒霜之中spf最大的。因为后面的奶牛的min一定小于等于这个奶牛,下线不成问题,而只关乎上线,我们要把上线小的尽量留到后面。 #include <bits/stdc++.h> using namespace std; const int maxn=30...原创 2019-09-30 21:26:05 · 267 阅读 · 0 评论 -
poj2054-color a tree(贪心)
一个错误结论:尽量让权值最大的先被选走。 而我们可以很容易的构造出一个反例(不赘述了) 但由这个错误的结论,我们可以得到一个正确的结论:对于当前权值最大的点,一定在他父亲被染过色后第一个被染色,相当于是紧接着父亲被染色。 根据这个原则,我们可以把相邻染色的2个点都通过并查集合并成一个大的结点,得出他们的相对位置(拓扑序)然后再继续找下一个结点,这样每次合并都会少一个结点,最终只有一个结点的时...原创 2019-10-01 11:10:13 · 186 阅读 · 0 评论 -
Stall Reservation POJ3190
很好想的贪心策略:能用之前的就用之前的,不然就不用。 具体的实现可以用优先队列呀,emmm可以重载操作符会好写一些。 #include <bits/stdc++.h> using namespace std; const int maxn=1005; int n,s[maxn]; struct node { int x,y,id; }a[maxn]; struct cow {...原创 2019-10-02 11:53:51 · 130 阅读 · 0 评论 -
radar installation POJ1328
因为所有雷达的半径都一样,我们可以轻易求出对于每一个建筑物可以被覆盖到的雷达范围。于是就把题目转化成了给定一系列区间,要就每个区间里至少要有一个雷达,问至少要多少雷达。 这样的话直接从头到尾贪心就行了。pos表示最后一个雷达的位置。对于每一个区间,如果区间的左端在pos的后面,那么一定要新建一个雷达,并将他的位置制成此区间的右端点。若是区间的左端在pos的前面,那么新建一个雷达的位置在min(p...原创 2019-10-02 12:01:28 · 165 阅读 · 0 评论 -
hihocoder 分割相同整数
首先我们发现对于不合法的情况:cnt(最大的相同的个数)*2-1>n 由于是字典序最小,我们肯定优先保证前面的越小越好,直接贪心 我们选择合法的时候最小的数字,置于当前位置。 注意:这里的合法不仅仅是考虑当前数字是否和前一个有重复,还要时刻满足cnt*2-1<=i。因为后面的没有排的也相当于一个序列,我们也要考虑他的合法性。 #include <bits/stdc++....原创 2019-10-02 12:07:42 · 107 阅读 · 0 评论