贪心
小元勋
生生不息 摸鱼不止
展开
-
「一本通 1.1 例 2」种树 --贪心
loj 10001题目分析:经典的区间选点问题每次将树种到最右边,对答案更优,因为可以覆盖更多的区间将区间按照rrr越小排序,每次查看当前区间种的树是否够,若不够,从后往前种,注意只能在没种的上面种Code:#include <bits/stdc++.h>using namespace std;#define maxn 30010#define maxm 501...原创 2019-08-21 19:41:49 · 295 阅读 · 0 评论 -
「一本通 1.1 例 3」喷水装置 --贪心
loj 10002题目分析:经典的区间覆盖问题我们需要用勾股定理预处理出一个喷头的左右区间如果一个喷头的r<=(h/2),continuer<=(h/2),continuer<=(h/2),continue,r==(h/2)r==(h/2)r==(h/2)的时候为什么不要呢,因为它只覆盖了一个点按照喷头的lll从小到大排序,每次对于当前的左界,在e[...原创 2019-08-21 20:41:43 · 246 阅读 · 0 评论 -
「一本通 1.1 例 4」加工生产调度-- 贪心
loj 10003题目分析:经典的流水作业调度问题使用JohnsonJohnsonJohnson算法,设N1为a<b的集合,N2为a>=b的集合,将N1按照a非减序排序,N2按照b非增序排列,则N1作业接N2作业为最优决策N_1为a<b的集合,N_2为a>=b的集合,将N_1按照a非减序排序,N_2按照b非增序排列,则N_1作业接N...原创 2019-08-21 21:49:44 · 429 阅读 · 0 评论 -
「一本通 1.1 例 5」智力大冲浪 --贪心
loj 10004题目分析:经典的带限期和罚款的单位时间任务调度问题将www从大到小排序,优先处理罚款多的,将任务尽量安排在期限之前,并且靠后,如果找不到,则放在最后面Code:#include <bits/stdc++.h>using namespace std;#define maxn 510#define re registerint n,m;bool...原创 2019-08-22 08:55:01 · 383 阅读 · 0 评论 -
「一本通 1.1 练习 1」数列极差 -- 贪心
loj 10005题目分析:List itemCode:#include <bits/stdc++.h>using namespace std;#define maxn 50010int n,a[maxn];long long maxd,mind;struct hep_min { long long x; bool operator < (const...原创 2019-08-22 12:00:27 · 198 阅读 · 0 评论 -
「一本通 1.1 练习 2」数列分段 --贪心
loj 10006题目分析:尽可能的多贪Code:#include <bits/stdc++.h>using namespace std;#define maxn 100010int n,a[maxn],m;inline int read_() { int x=0,f=1; char c=getchar(); while(c<'0'||c>'...原创 2019-08-22 15:13:59 · 238 阅读 · 0 评论 -
「一本通 1.1 练习 3」线段 --贪心
loj 10007题目分析:按照rrr从小到大排序,如果与前一个区间的不重叠,就贪Code:#include <bits/stdc++.h>using namespace std;#define maxn 1000010int n;struct node { int l,r;}e[maxn];inline int read_() { int x=0,f...原创 2019-08-22 15:22:25 · 206 阅读 · 0 评论 -
「一本通 1.1 练习 4」家庭作业 -- 贪心+并查集
loj 10008题目分析:将按照w从大到小排序,放的越后越好w从大到小排序,放的越后越好w从大到小排序,放的越后越好维护一个f[i]表示i之前能放的最靠后的位置,用并查集实现f[i]表示i之前能放的最靠后的位置,用并查集实现f[i]表示i之前能放的最靠后的位置,用并查集实现Code:#include <bits/stdc++.h>using namespace st...原创 2019-08-22 16:05:46 · 338 阅读 · 0 评论 -
烦恼的高考志愿 --二分查找+贪心
Luogu 1678题目分析:给每个学生匹配不满意度最小的学校Code:#include <bits/stdc++.h>using namespace std;#define maxn 100010#define maxm 100010int ans=0,n,m,a[maxn],b;inline int read_() { int x=0,f=1; ch...原创 2019-08-21 11:17:20 · 352 阅读 · 0 评论 -
[BOI2007]Sequence 序列问题 -- 贪心
Luogu 4393Code:#include <bits/stdc++.h>using namespace std;#define maxn 1000010#define re registerint n,a[maxn];inline int read_() { int x=0,f=1; char c=getchar(); while(c&...原创 2019-08-19 20:26:47 · 179 阅读 · 0 评论 -
[USACO1.2]挤牛奶Milking Cows--贪心
Luogu 1204题目分析:将时间段看成线段,按lll排序后分情况讨论Code:#include <bits/stdc++.h>using namespace std;#define maxn 5010int n,ans_1=0,ans_2=0;struct node { int l,r;}a[maxn];inline void init_() { ...原创 2019-08-10 20:35:09 · 311 阅读 · 0 评论 -
[USACO07MAR]面对正确的方式Face The Right Way -- 贪心+差分
Luogu 2882题目分析:暴力枚举kkk,求出步骤对于一段序列,贪心的遇到000点,将自己到后面共kkk个翻转,不是真的修改,而是打上标记tagtagtag表示翻转次数,若tag+a[i]是奇数tag+a[i]是奇数tag+a[i]是奇数,则已翻转好如果最后剩下的序列小于kkk,则不满足条件,返回最大值Code:#include <bits/stdc++.h>u...原创 2019-08-20 10:22:42 · 162 阅读 · 0 评论 -
[USACO1.3]修理牛棚 Barn Repair--贪心
Luogu 1209题目分析:先用一块木板全部覆盖对牛所在的位置排序,求出两牛间距对于较大的间距处,断开添加木板Code:#include <bits/stdc++.h>using namespace std;#define maxc 210int ans,s,m,c,a[maxc],pdc[maxc];inline void init_() { freo...原创 2019-08-11 17:09:31 · 175 阅读 · 0 评论 -
数列分段 Section II--二分答案+贪心
Luogu 1182题目分析:二分最大值,贪心的选数,在一段未超过二分值得情况下尽可能的多取数若不能再取,就重启一段,注意判断a[i]>mida[i]>mida[i]>mid的情况Code:#include <bits/stdc++.h>using namespace std;#define maxn 100010#define ...原创 2019-08-15 21:00:20 · 244 阅读 · 0 评论 -
均分纸牌与糖果传递 -- 贪心+数学
均分纸牌题目分析:多了往右边放,少了从右边取Code:#include <bits/stdc++.h>using namespace std;#define maxn 110int n,a[maxn],sum=0,q[maxn];inline int read_() { int x=0,f=1; char c=getchar(); while(c<...原创 2019-08-22 19:23:09 · 131 阅读 · 0 评论