贪心
aozil_yang
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #219 (Div. 2)--C. Counting Kangaroos is Fun
C. Counting Kangaroos is Funtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere are n kangaroos with pock原创 2016-02-11 22:09:08 · 503 阅读 · 0 评论 -
Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) -- D. Generating Sets(贪心)
大体题意:给你长度为n 的数组y,求一个数组x,满足y中的每一个元素都可以由x中的元素 进行乘以2 或者 乘以2加1 的操作来得到!要求输出x中的最大元素尽可能小的结果?思路:比赛没有出,赛后补的!贪心思路:先把刚开始的数放到set里,不断取出最大值,然后给当前最大值找到第一个合适的数,不断的找,不断的处理,直到当前最大值不能在小了,结束循环!这种贪心相当于每一步都找到最原创 2016-10-02 19:13:52 · 347 阅读 · 0 评论 -
CCF习题 201612-4 交通规划 (Dijkstra + 贪心)
大体题意:提议不说了 中文的= =思路:既然要求到1的最短距离要存在,我们先用dijkstra算法求出每一个点到1位置的最短距离,然后在看要哪一些边!既然要求路最短 并且包括最短距离,那么我们可以枚举每一条边{u,v,w}当这条路就是v到1位置的最短路之一时,我们就把这条边的权值和已经保存的最小权值进行比较!这样的贪心方法想一想 是很合理的!我们贪心的要 每一个点最短路上的原创 2016-10-17 20:23:34 · 3753 阅读 · 1 评论 -
POJ 3110 Jenny's First Exam (二分 + 树状数组 + 贪心 + 预处理年份)
大体题意:告诉你n 个科目的考试日期,在考试当天不能复习,每一个科目的最早复习时间不能早于考试时间的t天,每一天你可以复习完一科,也只能复习一科,求最晚的复习时间!思路:题目中描述的考试时间是1900年到2100年 总共200年,但这只是考试日期,还有早于考试时间的t天,t最多是10w,2年多!因此我们要计算1600年到2100年这 500年的时间!为了方便计算,我们先把日期映射成原创 2016-11-15 22:47:28 · 732 阅读 · 0 评论 -
Codeforces Round #378 (Div. 2) -- C. Epidemic in Monstropolis (贪心模拟)
大体题意:有n个怪兽在排队,告诉你刚开始每个怪兽的体重,只有体重大的怪兽能吃体重小的怪兽!并且只有相邻的怪兽才能吃,吃掉怪兽后体重增加被吃怪兽的体重,告诉你最后的体重序列,问是否存在这样一种吃法! 存在输出 吃的过程!否则输出NO思路:这个题在109个样例WA掉了! 思路就偏了!简单贪心模拟好了!其实思路也很简单! 因为他只能吃相邻的怪兽,所以序列最后一个怪兽的体重 一定是刚原创 2016-11-01 14:59:54 · 382 阅读 · 0 评论 -
Codeforces Round #398 (Div. 2) -- B. The Queue (贪心+暴力)
大体题意:告诉你工作站的工作起始时间 终止时间, 和处理一个人的时间间隔。并告诉你n 个人来的时间。 求你要求的话 什么时候去 排队时间最少, 如果你和某个人去的时间一样,你会排在它们后面。思路:暴力贪心就好了。先找有缝的,发现一个人的就诊时间大于上一个人结束时间,那么直接输出 上一个人输出时间。以上找的是不用排队的时间。如果找不到,就要找需要排队的时间。直接枚举每原创 2017-02-18 22:13:24 · 304 阅读 · 0 评论 -
UVA 714 Copying Books(二分+贪心)
大体题意:给你n 个数,要求分成m份,使得m份中的最大值最小,要求打印解,如果多解,要求第一份最小,其次第二份最小,,依次类推。思路:最大值最小,肯定是二分了。我们直接二分最大值,找一个最小的答案x。然后我们划分n 个数,因为越往前越小,所以肯定从后向前枚举。然后第i 个数要不要划分的话,有两个依据,当前和超过了x 或者 剩下的可以切的刀数不足 要求的刀数,那么就必须划分原创 2017-02-26 00:24:34 · 392 阅读 · 0 评论 -
玲珑杯 1101 - 萌萌哒的第六题 (树状数组+贪心)
题意:告诉你一个n 多边形,告诉你了n 个点的颜色(颜色只有三种RGB),并且告诉你n-3 条边,问你输入的数据是否满足以下条件:相邻的点的颜色各不相同,恰好把多边形分成多个三角形,并且三角形的三个点的颜色不相同。思路:颜色的话好说:先判断相邻的点颜色是否相同。然后在判断三角形的颜色,如果n-3条边互不相交的话,那么一定能恰好分成若干个三角形。假设互不相交的话,那么直接原创 2017-03-04 22:19:00 · 387 阅读 · 0 评论 -
Technocup 2017 - Elimination Round 3 -- D. Santa Claus and a Palindrome (贪心+Map瞎搞)
大体题意:给你n 个字符串的权值,要求每个字符串最多使用一次,使得组成一个长的回文串,使得权值最大,如果最大权值为负数,则输出0.思路:真的被这道题恶心到了。做这个题就是细心,讨论好就可以了。我们可以开一个map >mp; 来存取每个字符串的权值,因为相同字符串可以有多个权值,所以用vector存。枚举当前字符串s 时,如果发现不是回文串,直接找 s 对应的回文串,两边同时原创 2017-02-26 23:56:21 · 370 阅读 · 0 评论 -
Educational Codeforces Round 18 -- C. Divide by Three (贪心)
题意:给你一个大数,长度最大是10w, 要求你删除最小的数字使得这个数不含前导零 并且能整除3.思路:贪心:我们知道 如果一个数 的各个数字之和sum 能整除3 的话,那么这个数就是3 的倍数。我们先判断 sum % 3 是否等于0 等于0 直接输出。不等于0 的话, 假设是x 的话,那么另一个相对的是y (y = 3-x)那么我们可以找到一个数字 他的mod 3原创 2017-03-29 22:17:41 · 369 阅读 · 0 评论 -
UVA 1664 Conquer a New Region (并查集+贪心)
题意:n 个城市形成一棵树,每条边有权值C(i,j),任意两个点的容量S(i,j)定义为i与j 唯一通路上容量的最小值,找一个点,使得它到其他点的容量之和最大,求最大值?思路:贪心思路。我们给边从大到小排序,因为是一棵树, 每个边都要处理。因此当前枚举的边一定是当前集合中 最小的边,因此他就是容量, 我们分别让两个端点的并查集父亲 作为中心城市, 找一个大的进行合并即可。这原创 2017-03-13 22:04:01 · 465 阅读 · 0 评论 -
Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) -- A. Broken Clock (贪心)
大大体题意:有12小时进制和24小时进制的时间,给你一个时间,hh:mm,如果合法 原样输出,否则修改最少的数字 改成合法的时间!思路:算不上贪心,想清楚就可以了! 其中分钟最简单, 如果 大于59 直接输出 0 + 个位数即可!对于小时来说:如果是24小时进制的: 如果大于23 直接变成 0 + 个位数!如果是12小时进制的: 如果等于0 或者大于12原创 2016-10-02 00:59:12 · 506 阅读 · 0 评论 -
Canada Cup 2016 D. Contest Balloons (贪心 + 优先队列)
大体题意:给你n 个队伍,你的队伍是第一个队伍,每个队伍有气球数量,和最大数量。如果气球数量多于最大数量,你就会飞走,无法进行排名!你现在可以给你别的队伍气球,使得他们飞走,从而使你的排名尽量靠前!问你的最好名次?思路:借鉴了学长的博客:贪心的方式:你给气球肯定要给气球比你多的人的队伍,让他们飞走后,可能你的名次会下降,但为了更好的名次,你必须在给比你靠前的人的气球,这样给一次原创 2016-10-24 12:13:14 · 492 阅读 · 0 评论 -
UVA - 11636 Hello World! (STL)
题意不说了。思路:先要快速接近目标n 所以 不断取2 4 8 16 32... 直到恰好小于n为止,这时在加1就可以了STL 中的lower_bound 恰好实现这个功能!#include#include#includeusing namespace std;int a[35];void init(){ a[0] = 1; for (int i原创 2016-05-29 22:36:41 · 317 阅读 · 0 评论 -
南阳理工学院 ACM OJ-- 题目6 喷水装置(一) (贪心暴力)
喷水装置(一)时间限制:3000 ms | 内存限制:65535 KB难度:3描述现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1<i<600)个,并且一定能把草坪全部湿润,你要做的是:选择尽量少的喷水装置,把整个草坪的全部湿润。原创 2016-05-31 17:29:25 · 4058 阅读 · 0 评论 -
习题8-3 UVA - 12545 Bits Equalizer(贪心)
题意:输入两个字符串,第一个字符串包括0,1,?, 第二个字符串只包括0和1,问由第一个字符串转换到第二个字符串最少多少个操作?其中操作有3个,1.可以把问号变成1或者0。2.可以交换任意两个数字。3.可以把0变成1.思路:仔细想想,可以得出,如果第一个字符串1的个数大于第二行的话,你怎样变都无法变过去。所以这种情况直接输出-1.如果不是的话,那么你就统计0-1,原创 2016-06-24 18:19:14 · 516 阅读 · 0 评论 -
习题8-10 UVA - 1614 Hell on the Markets 奇怪的股市(贪心)
大体题意:给你n 个数,让你变换n 个数的符号,添加正号或者负号,使得最终所有的数字和为0,如果可以达到目标输出所有数字的符号,否则 输出NO思路:贪心做。把n 个数存到结构体中,结构体包含数值大小v 和id 。按v排序,然后从后往前扫,因为结果是0嘛,当前和大于0 的话减去当前的数,否则加上当前的数,然后判断最后sum 是否为0 即可!#include#incl原创 2016-06-13 23:45:49 · 469 阅读 · 0 评论 -
习题8-12 UVA - 1153 Keep the Customer Satisfied 顾客是上帝(优先队列贪心)
大体题意:给你n (n 思路:其实思路,在PDF中已经很明显了,先按照终止日期排序,因为要想完成更多的任务,你就必须先完成终止日期小的任务。其次就是选任务了,在PDF文章中,他选择了2,3,5,6任务,1没有选择,但1一开始肯定是符合要求的,所以思路肯定是排完序后,先选择,当选择不了(时间不允许时),看看当前选择不了的任务是否比已选择的任务中最差的更加优,所以就把更优的选入,最差的原创 2016-07-04 17:42:05 · 455 阅读 · 0 评论 -
Codeforces Round #293 (Div. 2) -- E. Arthur and Questions (思路 + 贪心)
E. Arthur and Questionstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAfter bracket sequences Arthur took up number原创 2016-07-07 14:59:53 · 476 阅读 · 0 评论 -
CodeForces 589F -- F. Gourmet and Banquet (二分 + 贪心)
F. Gourmet and Banquettime limit per test 2 seconds memory limit per test 512 megabytes input standard input output standard output A gourmet came into the banquet hall, where the cooks sugg原创 2016-08-11 00:18:29 · 663 阅读 · 0 评论 -
LA 3266 || UVALive 3266 Tian Ji -- The Horse Racing 田忌赛马(贪心)
大体题意:田忌与齐王赛马,他们有n 匹马,告诉你每匹马的速度,田忌赢一场得200,输一场扣200,平局不赚不扣,求最高赚多少?思路:贪心思路都给双方排个序,从最快的 马开始枚举,如果田忌的当前的马快于齐王的马,那么这局肯定赢,直接得200。如果慢与齐王,那么这局肯定赢不了,既然赢不了,那不如用田忌当前最慢的马去输齐王当前最快的马。如果与齐王速度相同,那么这局也赢不了,那原创 2016-09-04 10:25:45 · 489 阅读 · 0 评论 -
UVA 1611&& UVALive 6588 Crane (贪心思路)
大体题意:给你n 个数(1~n),要求排列出来1~n升序的状态,你的操作只能选择一个偶数长度的区间,交换前一半和后一半,求操作过程,只要答案不超过9的6次方即是正确答案!思路:方法肯定有很多了,开放性的题目:简单记录下自己比赛想到的吧:一个数一个数的归位,那么就枚举1~n,先预处理出来每一个数的位置id[i]。然后判断当前位置,和正确位置。先判断能否一步到达, 所谓一步原创 2016-09-23 23:42:34 · 523 阅读 · 0 评论 -
Codeforces Round #373 (Div. 2) -- C - Efim and Strange Grade (贪心)
大体题意:给你一个最多长度为20W的小数,你有t次进位的机会,每一次 你可以在小数点后任意一个位置进位,求进位后小数的最大值?思路:贪心思路,没想到比赛想的不够好,超时了= =其实还是很简单的!直接找到小数点后第一个可以进位的数>=5的位置,然后从这个位置开始往前进,最多进t次,注意处理,小数点前的进位和加上前导1的情况即可!详细见代码:#include using原创 2016-09-24 10:12:15 · 283 阅读 · 0 评论 -
HDU 6000 Wash (优先队列-贪心)
题意:你有L件衣服, 有n 个洗衣机, m 个烘干机, 告诉你每个洗衣机的洗衣服的时间,和每个烘干机的烘干时间, 每个机器 一个时间段只能处理一件衣服,问洗完这L 件衣服最短时间是多少?思路:贪心。第一步很好想,我们先求出每一件衣服最早的洗好的时间。然后在烘干, 这里因为是最后一件时间尽量少, 因此我们采用最晚的洗好的时间 用第一个烘干机。(最大值加最小值的贪心方式进行贪心)原创 2017-04-01 11:41:28 · 2087 阅读 · 0 评论