贪心
BrooksBUAA
这个作者很懒,什么都没留下…
展开
-
[HDU 4864]Task:贪心
点击这里查看原题将所有机器和任务按x由大到小排序,若x相同则按y由大到小排序。 对每个任务,从所有时间大于等于它的机器中选择能力最小的去执行这个任务。/*User:SmallLanguage:C++Problem No.:4864*/#include<bits/stdc++.h>#define ll long long#define inf 999999999using names原创 2017-04-12 11:53:27 · 260 阅读 · 0 评论 -
[BZOJ 3671][Noi2014]随机数生成器:贪心
点击这里查看原题很显然,贪心的去想,要使字典序最小,那么每次应从可以取的数中取最小的数,然后取完对左下和右上的部分标记,因为每个点只会被标记一次(遇到标记过的点就break),所以复杂度O(nm)/*User:SmallLanguage:C++Problem No.:6*/#include<bits/stdc++.h>#define ll long long#define inf 99原创 2017-04-13 10:27:43 · 428 阅读 · 0 评论 -
[BZOJ 1178][Apio2009]CONVENTION会议中心:贪心+倍增
点击这里查看原题第一问简单,贪心即可,难在第二问如何求字典序最小的。可以考虑,按字典序尝试所有区间,若加入该区间后总的区间数不变,则一定加入该区间,因此需要实现的就是logn查询区间内的区间数。 我们用getans函数来求区间内的区间数,如果要加入一个[l0,r0]的区间,那么需要满足getans(l,r)=getans(l,l0-1)+getans(r0+1,r)+1,其中l为之前加入的区间中小原创 2017-05-02 20:14:14 · 1219 阅读 · 0 评论 -
[BZOJ 2811][Apio2012]Guard:贪心+二分
点击这里查看原题思路比较复杂,细节也很多,具体的讲解写在代码的注释里好了/*User:SmallLanguage:C++Problem No.:2811*/#include<bits/stdc++.h>#define ll long long#define inf 999999999#define pii pair<int,int>#define mp make_pairusin原创 2017-05-05 08:31:56 · 444 阅读 · 1 评论