
贪心
NotFound1
这个作者很懒,什么都没留下…
展开
-
|NOIOJ|贪心|1797:金银岛
描述某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属。但是他只带着一个口袋,口袋至多只能装重量为w的物品。岛上金属有s个种类, 每种金属重量不同,分别为n1, n2, ... , ns,同时每个种类的金属总的价值也不同,分别为v1,v2, ..., vs。KID想一次带走价值尽可能多的金属,问他最多能带走价值多少的金属。注意原创 2016-06-03 19:15:34 · 2328 阅读 · 0 评论 -
|洛谷|NOIP2010|搜索|贪心|P1514 引水入城
https://www.luogu.org/problem/show?pid=1514从第一行开始DFS搜索,注意如果旁边同行的高度大于这个,就不用搜索这个,因为如果有比这个高的,那么那个高的一定会流到这个格子如果有解,就在最后一行形成了几条线段然后区间覆盖问题即可#include#include#include#include#define ms(i,j) memset(原创 2016-10-09 18:50:43 · 333 阅读 · 0 评论 -
|洛谷|贪心|P1478 陶陶摘苹果(升级版)
http://www.luogu.org/problem/show?pid=1478和05年的NOIP的原题一样水,直接贪心,不需要做01背包#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int y[5005];int main(){ in原创 2016-10-03 11:26:40 · 2074 阅读 · 0 评论 -
|洛谷|NOIP2013|贪心|P1969 积木大赛
http://www.luogu.org/problem/show?pid=1969如果当前积木高度大于前面的积木高度,说明这块积木要比前面那块积木多操作高出的高度次,而小于等于前面的积木高度,则可以在前面的操作中达到标准#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using name原创 2016-10-04 15:31:54 · 1323 阅读 · 0 评论 -
|洛谷|贪心|P1413 坚果保龄球
https://www.luogu.org/problem/show?pid=1413把僵尸按照t为关键字从小到大排序,t相同时p为关键字然后用a数组来存储每一道最早能拦截到的一个僵尸的编号如果道一样,当前僵尸出现时间-之前的僵尸>=60说明这一个坚果拦不到,要增加一个#include#include#include#define ms(i,j) memset(i,j, si原创 2016-11-13 20:50:30 · 958 阅读 · 0 评论 -
|洛谷|贪心|P2813 母舰
https://www.luogu.org/problem/show?pid=281390分程序,TLE第一个点把两个数组从小到大排序,然后尽量用我方较为小的系统去打敌人较大的系统#include#include#include#define ms(i,j) memset(i,j, sizeof i);/* NOIP2016倒计时,RP++ Luogu: P28原创 2016-11-14 21:41:26 · 544 阅读 · 0 评论 -
|洛谷|贪心|P1376 机器工厂
https://www.luogu.org/problem/show?pid=1376简单的贪心,居然之前还想不到。。感觉快完了#include#include#include#define ms(i,j) memset(i,j, sizeof i);/* NOIP2016倒计时,RP++ Luogu: P1376 机器工厂*/using namespace std; i原创 2016-11-15 21:37:22 · 486 阅读 · 0 评论 -
|洛谷|贪心|P1958 上学路线_NOI导刊2009普及(6)
https://www.luogu.org/problem/show?pid=2637把出价从小到大排序,然后从小到大枚举,把每个出价当做卖价,最后和ans比较即可#include#include#includeusing namespace std;#define ms(i,j) memset(i, j, sizeof i);int n,m;int a[1005];int原创 2016-11-27 10:48:23 · 639 阅读 · 0 评论 -
|算法讨论|贪心算法 学习笔记
选择不相交区间int end = -1, cnt = 0;//end 是上一选择区间的结束点,cnt为选择的区间个数 sort(A,A+n);//按照b排序 for(int i=0;i<n;i++)//循环每个区间 { if(end < A[i].a) //如果区间不相交 {原创 2016-11-27 10:56:10 · 415 阅读 · 0 评论 -
|算法讨论|贪心算法 学习笔记
题目模板及讲解选择不相交区间int end = -1, cnt = 0;//end 是上一选择区间的结束点,cnt为选择的区间个数 sort(A,A+n);//按照b排序 for(int i=0;i<n;i++)//循环每个区间 { if(end < A[i].a) //如果区间不相交原创 2017-03-11 17:05:47 · 355 阅读 · 0 评论 -
|BZOJ 1634|贪心|[Usaco2007 Jan]Protecting the Flowers 护花
BZOJ 1634 Luogu 2878 from: USACO 2007 Jan Sliver(USACO刷题第11题)刚开始naive的认为比较函数是第一关键字dd第二关键字tt,狂炸的我..对于两头牛a,ba, b,他们的先后顺序不影响其他牛吃花的个数 那么考虑 aa在bb前面,那么吃的花为2∗d[b]∗t[a]2*d[b]*t[a] bb在aa前面,那么吃的花为2∗d[a]∗t[b原创 2017-06-16 19:49:10 · 558 阅读 · 0 评论 -
|UVA 11292|贪心|Dragon of Loowater
UVA 11292 训练指南 第一章 例1 两个数组排序后贪心处理即可,水题一道。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define ms(i, j) memeset(i, j, sizeof i)#define FN2 "UVA11292"const int MAXN = 20原创 2017-06-03 14:54:23 · 451 阅读 · 0 评论 -
|UVA 11729|贪心|Commando War
UVA 11729 训练指南 第一章 例2 贪心,把完成任务时间最长的优先进行#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define ms(i, j) memeset(i, j, sizeof i)const int MAXN = 1000 + 5;struct data{原创 2017-06-03 14:56:38 · 501 阅读 · 0 评论 -
|Vijos|贪心|P1662 最大配对
https://vijos.org/p/1662把两个a,b从小到大排序,此时绝对值差最大的绝对是a头-b尾或者b头-a尾,最后累加起来即可#include#include#include#include#include#define ms(i,j) memset(i,j,sizeof(i));using namespace std;int a[1000005];int b原创 2016-08-26 17:03:17 · 571 阅读 · 0 评论 -
|Vijos|贪心|P1691 输油管道问题
https://vijos.org/p/1691管道尽量在中间,即求中位数,要分奇偶两种情况:奇数:第n/2个偶数:第(n+1)/2个此题的x并无用处,最后将所有油田距离管道的距离加起来就行了。#include#include#include#include#include#define ms(i,j) memset(i,j,sizeof(i));using n原创 2016-08-26 16:52:22 · 621 阅读 · 0 评论 -
|Vijos|贪心|堆|P1513 紧急救援
https://vijos.org/p/1513按照h排序,然后构造大根堆,将每个t一一插入,那么这里有两种情况1、当前总时间(堆和)+ti 2、否则,如果根堆顶部的值都比ti大,那么让ti替换掉根堆顶部即可答案是根堆里元素的个数。#include#include#include#include#define ms(i,j) memset(i,j,sizeof(i));原创 2016-08-26 11:00:02 · 360 阅读 · 0 评论 -
|NOIOJ|贪心|2407:书架
描述John最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩最顶层有空余。John共有N头奶牛(1 ≤ N ≤ 20,000),每头奶牛有自己的高度Hi(1 ≤ Hi ≤ 10,000),N头奶牛的总高度为S。书架高度为B(1 ≤ B ≤ S 为了到达书架顶层,奶牛可以踩着其他奶牛的背,像叠罗汉一样,直到他们的总高度不低于书架高度。当然若奶牛越多则危险原创 2016-06-03 23:37:54 · 1866 阅读 · 0 评论 -
|Tyvj|NOIP2008|贪心|P1007 排座椅
http://tyvj.cn/p/1007贪心,先把每条路能解决问题的个数存储,然后进行降序快排,然后每次贪心选择一条能解决问题最多的一条路进行开辟,即选择前k、l个数,然后再进行快排,因为输出要按照升序输出。#include#includeint m,n,k,l,d;int a_k[1500], a_l[1500], k_n[1500], l_n[1500];void qs(in原创 2016-06-04 13:33:51 · 1148 阅读 · 0 评论 -
|Tyvj|贪心|P1019 配对
http://tyvj.cn/p/1019贪心题目,a,b快排后从a的头开始加b的尾即为最大配对数参考代码:#include#includeint abs(int x) { if (x>=0) return x; else return 0-x;}int n;int a[10200], b[10200];void qs(int* s, int l, int r)原创 2016-06-04 14:01:20 · 440 阅读 · 0 评论 -
|Tyvj|NOIP1999|动态规划|贪心|P1878 拦截导弹
http://tyvj.cn/p/1878第一问:最长不上升子序列dp第二问:贪心#include#include#includeusing namespace std;int main () { const int maxn = 100 + 5; int dd[maxn]; int n=0; int yyy; while (scanf原创 2016-08-01 15:42:49 · 1223 阅读 · 0 评论 -
|Vijos|贪心|P1021 Victoria的舞会1
https://vijos.org/p/1021大水题,如果A的花名册里的人不少于k个,那么答案+1#include#include#include#define ms(i,j) memset(i, j, sizeof(i));using namespace std;int main () { int n,k; scanf("%d%d", &n ,&k); int an原创 2016-08-24 10:53:18 · 640 阅读 · 0 评论 -
|Vijos|贪心|P1039 最小差距
https://vijos.org/p/1039使最大数最小,最小数最大即可。#include#include#include#include#define ms(i,j) memset(i, j, sizeof(i));using namespace std;int a[11];bool vi[11];int main () { int t; scanf("%d"原创 2016-08-24 15:52:16 · 1166 阅读 · 0 评论 -
|Vijos|贪心|堆|P1079 中青局
https://vijos.org/p/1079Huffman树思想,类似合并果子,注意字符串处理,用堆即可(我用的一个优先队列)#include#include#include#include#define ms(i,j) memset(i, j, sizeof(i));using namespace std;char s[10000];int num[28];//0..2原创 2016-08-25 12:02:22 · 357 阅读 · 0 评论 -
|Vijos|NOIP2002|贪心|P1123 均分纸牌
https://vijos.org/p/1123求出总和的平均数,每个A[i]减去平均数,逐步将A[i]变为0,怎么变为0?将A[i]的所有牌移动到A[i+1],如果本身是0,则不需要移动#include#include#include#include#define ms(i,j) memset(i, j, sizeof(i));using namespace std;int原创 2016-08-25 12:24:29 · 345 阅读 · 0 评论 -
|Vijos|贪心|P1444 区间
https://vijos.org/p/1444尽量在右边选点#include#include#include#include#define ms(i,j) memset(i, j, sizeof(i));using namespace std;const int maxn = 10000 + 5;struct qj{ int a; int b;}q[maxn];b原创 2016-08-25 15:33:38 · 377 阅读 · 0 评论 -
|洛谷|贪心|P1803 凌乱的yyy
http://www.luogu.org/record/lists?pid=P1803把比赛抽象为区间,然后按照区间右边排序,然后选择第一个区间,之后再选择不与第一个区间相交的区间即可,以此例推#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;str原创 2016-09-17 17:52:18 · 366 阅读 · 0 评论 -
|洛谷|贪心|P1208 [USACO1.3]混合牛奶 Mixing Milk
http://www.luogu.org/problem/show?pid=1208贪心地优先选择最便宜的牛奶#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int p[5005], a[5005];void qs(int l, int r) {原创 2016-09-17 17:56:29 · 315 阅读 · 0 评论 -
|Vijos|贪心|P1414 Dejected Birthday-盗窃
https://vijos.org/p/1414经典删数问题,英文内容为“给出一串数字删除n位后使值最小”,根据贪心思维,要删除Ai>Ai+1的每个Ai注意前导0,以及全部为0时要保留一位0输出。#include#include#include#include#define ms(i,j) memset(i,j,sizeof(i));using namespace std;原创 2016-08-26 10:26:23 · 446 阅读 · 0 评论 -
|BZOJ 1650|二分|贪心|[Usaco2006 Dec]River Hopscotch 跳石子
BZOJ 1650 Luogu 2855 from: USACO 2006 Dec Sliver(USACO刷题第9题)最小值最大,显然二分。 二分最小值最大距离,然后贪心处理。 这里我们在头尾各增加一个石头,贪心时先从第一个石头开始记为ll,然后往后扫描,当前扫描的石头记为rr,如果st[r]−st[l]<midst[r]-st[l]<mid的话,说明l,rl, r中间的石头就算都移走都不原创 2017-06-15 19:28:01 · 626 阅读 · 0 评论