ACM_贪心算法
文章平均质量分 62
RaAlGhul
这个作者很懒,什么都没留下…
展开
-
HDOJ 1009 FatMouse' Trade
FatMouse' TradeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 60482 Accepted Submission(s): 20335Problem DescriptionFatMouse原创 2016-02-11 16:13:26 · 340 阅读 · 0 评论 -
HDOJ 5719 Arrange
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5719一道很简单的贪心模拟题。首先,我们来分析能否形成的条件。如果b[0]和c[0]不等的话,肯定是无法达到的,再来,每一步加进去一个数,所以最大值和最小值只有可能改变一个,如果改变的不止一个那么肯定是无法达到的。再想,如果加进去的这个数使得和上一步的最大值最小值不一样,原创 2016-07-18 14:57:02 · 403 阅读 · 0 评论 -
HDOJ 5246 超级赛亚ACMer
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5246中文题,题意不再解释。这题我们可以采取贪心去做,很显然我们每次都得达到和其中某一个人的战斗力相等才能增高我们的战斗力,我们的贪心策略就是说每次变更我们的战斗力为比我们战斗力+k低的最大的那个人的战斗力,关于查找,可以用C++库函数lower_bound去查找,也可以用二分去查找,不过这题由于数原创 2016-06-23 16:12:55 · 408 阅读 · 0 评论 -
HDOJ 5428 序列变换
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5248题目如果从正面去做的话,很难想到一种有效的贪心策略去处理这个问题(不排除一些大神有特殊的想法),但是反过来,给我们一个答案,我们能够很容易的贪心去判断是否可行,所以我们采取二分答案,再反过来判断是否可行。关于二分答案之后的判断,我们采取的贪心策略就是每一位都尽量的低。#include原创 2016-06-23 16:26:46 · 504 阅读 · 0 评论 -
HDOJ 5775 (2016多校联合训练 Training Contest 4) Bubble Sort
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5775题意:让我们求出每一个数在冒泡排序中的排在最左边的位置和最右边的位置的差。冒泡排序,仔细思考一下其中的原理,每一次我们都是从右边开始在前面前后交换,也就是说每一个数如果左边有几个数比它小,那么在它开始移动的时候,就要向右边移动多少次,所以能够排在最右边的位置就是它的当前位置+右边比原创 2016-07-30 13:26:54 · 850 阅读 · 1 评论 -
HDOJ 5773 (2016多校联合训练 Training Contest 4) The All-purpose Zero
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5773题意,0可以变成任何数,问我们可以得到的最长的上升序列的长度为多少。首先0可以变成任何数,那么最长的上升序列不一定包含所有的0,但是包含了所有的0的序列一定可以达到最长上升序列的长度,所以我们采取的策略就是把每一个数都减去它之前的0的个数,然后再进行一次LIS,最后再加上0的总个数原创 2016-07-30 14:49:59 · 565 阅读 · 0 评论 -
HDOJ 5783 (2016多校联合训练 Training Contest 5) Divide the Sequence
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5783本来一道可以出的很难的题,但是题目给了一个条件让这题变得很水。题目保证了有解,也就是说我们不用考虑会有无解的情况,那么我们只需要直接从后面开始讨论每一位的后缀和,只要大于0就可以算成一个序列。#include const int maxn = 1000000+5;typed原创 2016-08-05 18:58:43 · 468 阅读 · 0 评论 -
Codeforces Round #377 (Div. 2) Cormen --- The Best Friend Of a Man
题目链接:http://codeforces.com/contest/732/problem/B题意:相邻的数值和必须大于k,问我们加多少能使得这个序列满足要求。首先我们可以很轻易的发现,两端的数其中一端我们是怎么样都不用动的,加两端绝对不可能比加中间更优化。那么问题就简化了,加入我们不动第一个数,那么想要达到条件就只能加第二个数,而且是个定值,那么之后的数都是变成定值原创 2016-10-25 19:41:46 · 584 阅读 · 0 评论 -
Codeforces Round #377 (Div. 2) Sanatorium
题目链接:http://codeforces.com/contest/732/problem/C题意:给我们早中晚饭的次数,问我们最少可能缺饭的次数。这题我们可以进行贪心处理,首先我们先确定最少的完整的不缺饭的情况,缺的都是缺饭的。那么问题就变成了怎么确定最少的完整的不缺饭的情况。很显然,肯定不是先早中晚相等的时候,明显任意一个比另外两个大一个要少一点,所以我们只需原创 2016-10-25 20:19:43 · 418 阅读 · 0 评论 -
HDOJ 5265 pog loves szh II
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5265题意很简单,给我们n个数,和一个p,从n个数中取两个数A和B,问我们能够得到的最大的(A+B)%p为多少。这道题我们可以用贪心过,首先先对每个数取余,我们贪心的策略就是枚举每一位x,看能不能找到一个值比p-x-1相等或小的值,找到最大的这个值,如果没有,说明找不到一个数和它相加小于p,那么原创 2016-06-19 14:33:30 · 423 阅读 · 0 评论 -
HDOJ 5742 (2016多校联合训练 Training Contest 2) It's All In The Mind
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5742此题也是多校男的见到的水题,此题我们只需要贪心就能搞定,第一位和第二位尽量的打,后面的尽量的小,从第三位开始每一位数如果其右边的都不知道,那么这个数就是0,右边有就取右边第一个不为0的数。而前两位,尽量的取成100即可。#include #include #include #原创 2016-07-22 16:00:22 · 480 阅读 · 0 评论 -
BestCoder Round #64 Sum
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5586题意:给出N个数,再给出一个公式,可以选择把一段用公式进行更换,问最大能使得这N个数的和为多少。这是一个简单的贪心策略的题,大家可以先回顾一下HDOJ 1003 Max sum,这题是给出我们N个数,问我们选取其中一段的和的最大值是多少,我们采取的贪心策略就是直接从头开始扫过去,看其中的和原创 2016-05-08 11:18:25 · 411 阅读 · 0 评论 -
HDOJ 1050 Moving Tables
Moving TablesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 26508 Accepted Submission(s): 8775Problem DescriptionThe famous原创 2016-02-11 16:23:27 · 381 阅读 · 0 评论 -
HDOJ 1789 Doing Homework again
Doing Homework againTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10101 Accepted Submission(s): 5916Problem DescriptionIgna原创 2016-02-11 17:25:32 · 431 阅读 · 0 评论 -
HDOJ 2037 今年暑假不AC
今年暑假不ACTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 41268 Accepted Submission(s): 22101Problem Description“今年暑假不AC?”“是的。原创 2016-02-11 17:29:49 · 323 阅读 · 0 评论 -
HDOJ 1081 To The Max
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1081题意:输出最大和的子矩阵的和。拿到这题呢我第一反应是用统计的方法来做,也就是用二维的树状数组,因为题目的数据很小,才到100,要用二维树状数组遍历所有情况求最大值理论上来说是绝对可以的,小编我没试过。这道题这里小编讲解得方法是贪心+DP。在HDOJ上有这么一道题,因为做的时间有点久远了,小原创 2016-04-16 10:43:47 · 669 阅读 · 0 评论 -
ZOJ 3870 Team Formation
题目链接:http://icpc.moe/onlinejudge/showProblem.do?problemId=5518题意:给出n个数字,从中任选两个数,问有多少种组合可以达到所选的两个数的异或运算值比这两个数都大。题意很简单,对于异或运算的题目我们一般采取贪心的思想。首先分析,怎么样才能使两个数的异或运算值比他们两个数都大,因为异或运算是1^1 = 0,1^0 = 1,0^0原创 2016-04-29 21:15:13 · 424 阅读 · 0 评论 -
BestCoder Round #69 Baby Ming and Weight lifting
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5610题意:给我们两个盘,分别为a,b重量,问我们能否用这两个盘组合成一个重c的杠铃。首先,杠铃必须是两边平衡的,所以如果c都不是偶数直接就Impossible,题目就变为了问我们可不可以用a和b凑出c/2,刚刚拿到时小编的第一想法是母函数,但是一看……这么弱的数据根本不需要母函数,直接暴力即可原创 2016-05-03 21:17:11 · 469 阅读 · 0 评论 -
HDOJ 1506 Largest Rectangle in a Histogram
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1506题意:如图一样,找出其中最大能形成的矩形这题我们可以用贪心去解决,贪心的策略就是找到每一个点它往左边延伸比第一个它a[i]小的点l,和往右边延伸第一个比它大的点r,那么对于每一个点,能形成的最大的矩形面积就是(l-r+1)*a[i],这样我们就遍历每一个点就能找到最大值。#in原创 2016-04-19 21:26:47 · 410 阅读 · 0 评论 -
HDOJ 1505 City Game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1505首先这题我们可以先回顾一下另一道题HDOJ 1506 Largest Rectangle in a Histogram,这道题我们可以先想想,是不是很像呀~,但是可能层上还有层,所以我们就在一层一层的按上一题的贪心策略贪心过去就好。#include #include #include原创 2016-04-19 21:39:10 · 394 阅读 · 0 评论 -
监考安排 --- 简单的贪心策略
说到监考安排,最大的限制规则有俩,一个是每个老师尽量监考自己执教的科目,一个是每个老师的监考尽量安排在一天。那么这里我们可以用到简单的贪心策略来得出解,注意,这里是得出一个方案,不一定是最优方案,因为限制条件不多,所以本身不存在最优方案一说(最优方案指交换任意其中的两场考试的监考安排,都会达不到要求)。那么接下来我们介绍一下监考的策略。首先是所需要的变量值和接口:监考人员数量为n,原创 2017-05-06 13:41:07 · 3815 阅读 · 0 评论