贪心算法
·马克图布·
如果人生真的可以分为几个阶段的话,那么我现在就在感觉自己很普通,并一无是处的那个阶段。
展开
-
Atcoder F - Silver Fox vs Monster(贪心 + 差分)
题意银狐在和怪物搏斗,怪物们站成一排,我们可以假设它们站在数轴上。第i个怪物,站在坐标XiX_iXi处,健康度为HHH。银狐可以用炸弹攻击怪物。在坐标x处使用炸弹会降低所有怪物在坐标x−Dx-Dx−D和x+Dx + Dx+D(包括端点)之间的生命值。除了用炸弹降低怪物的生命值外,没有其他方法。当所有怪物的治疗为0或以下时,银狐获胜。找出获胜所需的最低炸弹数量。思路:贪心按怪物出现的坐标从...原创 2020-01-27 11:23:03 · 629 阅读 · 0 评论 -
poj1752 Advertisement(差分约束:输出路径 | 贪心:区间选点)
题意:广告商在跑步者门的沿途中插播广告,为了节约资金,现在尽量少的插播广告。已知每个跑步者跑步路标的起点和终点,如果之间路标的个数小于k,那么必须是在每个路标上都有广告,否则,沿途是k个。题意让你求最少需要多少个广告位,然后让你输出一种可能。思路:这是个区间前缀模型的差分约束。不过需要输出最长路的路径。对于每个节点如果d[i] - d[i - 1] == 1,那么 i 就是最长路上的一个点。...原创 2019-11-19 22:42:56 · 303 阅读 · 0 评论 -
B. Make Product Equal One(贪心)
题目链接————题目大意是给你一个数列,然后要求这个数列的乘积为1,让你改变这些数字,问最小的代价是多少。思路:先分析一下,如果最后数列的乘积为1,那么每个数字只能是1或者-1,且如果有-1的话还要有偶数个。所以统计负数的个数,并排个序,然后若代价最小的话,一开始的思路就让负数尽量为-1,正数尽量为1,还要兼顾-1为偶数的情况。这个大致思路是对的,但是有细节。我一开始是 IF sum%...原创 2019-08-19 17:51:47 · 375 阅读 · 0 评论 -
B. Equal Rectangles(贪心)
题目链接在这- --------- --题目大意是 给你一个n,然后再给你4*n条木棍。问你是否能够组成n个面积相等的矩形。并且每根木棍就只能用一次。昨晚一开始没读清题意,忽略的每根 木棍只能用一次这个条件,一开始也没想到贪心,导致思路出现偏斜,但是代码正确性却就差一步贪心。。。。一开始想着先统计出现次数,然后把每一个元素(不能是重复)放到一个序列中,然后两重循环两两相乘,在统计...原创 2019-08-14 11:39:46 · 218 阅读 · 0 评论 -
B. Physics Practical(贪心枚举 + 二分 | 尺取)
题目链接在 这 儿————题意大致是给你一个序列,然后要求最大值 <= 最小值*2,问你最少去掉几个数满足这一条件。思路: 排一下序,然后枚举每一个值作为最小值,然后二分查找满足条件的右边界。求的一个满足条件的最大长度的序列。答案就是 n - l(max)。但是我对二分掌控并不是很好,边界也没有注意处理,导致Wa了一发。AC Coed:#include<bi...原创 2019-08-14 10:09:09 · 214 阅读 · 0 评论 -
C. Text Editor(BFS | 贪心枚举)!
题目链接在这——————题目大意是有n行,每一行有a1,a2,a3,a4...............个字符,然后因为考虑光标,所以每行字符的个数都加1。给你光标的起始位置和结束位置,然后问你最短距离是多少。思路:这种题目一看就是BFS喽。可是我却一直TLE,一直到比赛结束。 究其原因,是因为我一开始一看ai的范围为1e5,就认为不能储存到二维数组vis中...原创 2019-08-14 09:50:38 · 233 阅读 · 0 评论 -
Atcoder C - Alchemist(贪心)
题目在这 --题目大意是有一个数列(调料)a1,a2,a3,.............an。然后往锅里放,没放进两个 ,然后把这个数(调料)放到数列中去,依次进行。问最后的值最大是多少?思路:当时想的也是贪心,想的是大数被/2比小数/2浪费的多。所以从小到大排个序就出来了,然后我一直考虑精度问题(题目压根没顾及精度。。),没敢直接相加/2,是先通分,最后再除。结果爆long l...原创 2019-08-19 00:42:11 · 461 阅读 · 0 评论 -
D. Boring Partition(纯模拟 | 模拟 + 贪心)
This problem is the most boring one you've ever seen.Given a sequence of integers a1, a2, ..., an and a non-negative integer h, our goal is to partition the sequence into two subsequences (not neces...原创 2019-08-07 10:25:38 · 198 阅读 · 0 评论 -
A. You Are Given Two Binary Strings...(贪心)
题目链接 —— here题目大意:给你两个二进制串与,然后有一个公式 ,k>=0给出一个,它是什么呢,是的翻转过来的二进制串。然后让你求一个k 使得字典序最小。这个题目当时 想了挺长时间,走了不少岔路,一开始认为可以将二进制串转化为十进制数,然后枚举k,这是不可行的,因为二进制串长度太大了。后来突然想到了,的二进制只可能表示为 1 ,10,100,1000.....原创 2019-08-09 08:53:27 · 309 阅读 · 0 评论 -
B. Well-known Numbers(数学构造 + 贪心)
Numbersk-bonacci (kis integer,k > 1) are a generalization of Fibonacci numbers and are determined as follows:F(k, n) = 0, for integern,1 ≤ n < k; F(k, k) = 1; F(k, n) = F(k, n - 1) + F(...原创 2019-07-28 16:35:58 · 252 阅读 · 0 评论 -
D. Olympiad(贪心 + 尺取)
A boy named Vasya has taken part in an Olympiad. His teacher knows that in total Vasya got at least x points for both tours of the Olympiad. The teacher has the results of the first and the second tou...原创 2019-08-05 11:37:02 · 240 阅读 · 0 评论 -
B. Magic, Wizardry and Wonders(巧妙贪心)
outputstandard outputVasya the Great Magician and Conjurer loves all kinds of miracles and wizardry. In one wave of a magic wand he can turn an object into something else. But, as you all know, th...原创 2019-08-05 09:59:49 · 336 阅读 · 0 评论 -
145. 超市 (贪心 + 并查集优化)
超市里有N件商品,每个商品都有利润pipi和过期时间didi,每天只能卖一件商品,过期商品(即当天di<=0di<=0)不能再卖。求合理安排每天卖的商品的情况下,可以得到的最大收益是多少。输入格式输入包含多组测试用例。每组测试用例,以输入整数N开始,接下里输入N对pipi和didi,分别代表第i件商品的利润和过期时间。在输入中,数据之间可以自由穿插任意个空格或空行,...原创 2019-08-14 23:17:08 · 252 阅读 · 0 评论 -
B. Block Adventure(贪心)
题目链接 在这 ————> here题意大致是有n列石柱,每一列石柱都是由高度为一的石块组成,一个人要从第一根到第n根,他有一个口袋,可以装下无限的石块,他可以在一个石柱上任意取石块,只要这个石柱高度>=1,每一根有一个高度,如果两根石柱的高度差|hi−hi+1|≤k, 那么那就可以走过去,若果高度不够,如果口袋里有石块,他就可以拿出来放到当前石柱上。最后如果能到第n个石柱...原创 2019-08-12 09:56:09 · 265 阅读 · 0 评论 -
卖萌鸡尾酒 (贪心)
题目链接题目描述众所周知,鸡尾酒的群名片叫作 "卖萌鸡尾酒",他认为一个群里的 「有缘人」是群名片与他相近的人。 现在,鸡尾酒想找出群里的 「有缘人」。首先,他将自己名片拆分成五个字 "卖"、"萌"、"鸡"、"尾"、"酒",并分别作为关键字进行搜索,每次搜索都会找到所有群名片包含这个字的群友。如:搜索 "萌" 就能找到所有名片中包含 "萌" 的人。如果某个人在至少两次搜索中...原创 2019-10-06 20:31:10 · 209 阅读 · 0 评论 -
E. Beautiful Decomposition(贪心 | DP)
题目链接————题意大致是给你一个数,然后用二进制加和产生这个数,问最小需要多少个二的幂来产生。11011014= 2^7 + ( - 2^4) + ( - 2^2) + 2^0.贪心 考虑逆向加和, 拿这个来说1101101最后一个1因为前面有个0,所以直接直接减去倒数第二个1,因为前面还有个1,所以加个1让它进位产生足够多的0。依次类推,就是模拟进位的过程,因为我太弱...原创 2019-09-05 19:24:38 · 348 阅读 · 0 评论 -
C. Little Girl and Maximum Sum(贪心 + 差分)
题目链接————题意是给你一个数字序列,然后会有m组询问 ,每组询问两个数字 l ,r 表示询问[ l, r ] 的区间和,问你在询问之前怎么排序,才可以使得m组询问累加的区间和最大。思路:一种贪心的思路是尽量使的询问出现次数最多的数尽可能 的大,这种转化为统计区间中出现数字次数问题,可以设置一个差分数组,区间统计变成了单点修改。最后将差分数组累加成前缀和数组,就是对应第i个位置出现次数的...原创 2019-09-01 18:46:03 · 379 阅读 · 0 评论 -
D. Little Girl and Maximum XOR(贪心)
题目链接————题目大意是给你[l , r ] 这个区间,然后让你找这个区间中两个数的异或的最大值,范围1e18。思路:找两个数异或最大,似乎可以用Trie树来解决。但是这个数据范围肯定会爆内存了。所以需要寻求别的解决方法,贪心?DP?其他?一种可行的贪心方案是找 l 与 r 中第一位不同的二进制位 k,然后 输出 1<<(k+1) 即可,但是这样会溢出的,1是...原创 2019-09-01 10:33:54 · 475 阅读 · 0 评论 -
C. k-Multiple Free Set(贪心)
题目链接————题意大致是 给你一个数字序列,然后每个数都是不同的,给你一个k,然后让你找一个最大的集合,使得这个集合的任意两个数都不满足k倍的关系。思路:先拍个序,一开始把所有数都拿进这个集合中,然后遍历一遍,遇到有k倍关系的只需删掉一个数即可。比较好像,但是要注意特判k = 1的情况,我特判错好几回,因为k倍关系是两个数的关系,所以m =1,输出全部的数。(Wa了8遍,不知道脑袋怎么想...原创 2019-08-31 10:46:28 · 219 阅读 · 0 评论 -
B. Uniqueness(贪心枚举)
题目链接————题意大致是给你一个序列,然后让你找到一个最小的区间[ l,r ],删除这段的元素,使得剩余序列中的数字没有重复的。思路:一开始的思路是从左往右扫一遍找到左端点,从右往左扫一遍找到右端点,然后输出这一段。然后一直Wa。后来和标程对拍的到一组数据发现了我思路中的纰漏,标程和我的思路差不多,只不过它是枚举每一个元素为删除的左端点,但是我扫一遍 的贪心并不正确。拿着一组...原创 2019-08-27 14:44:03 · 254 阅读 · 0 评论 -
C. Anagram(贪心)
题目链接————题意大致是给你两个字符串s和t,然后让你把s变为t,求最少次数的改变字符数,如果改变次数相等,则让输出改变字典序最小的字符串。思考:拿一位dalao的题解吧:——>原文解题思路: 贪心,设定a[A..Z]为s串中字母出现次数,b[A..Z]为t串中字母出现次数, 我们要解决两个问题: 1. 操作次数最少 2. 同样操作次数,字典序最小 对于问...原创 2019-08-18 00:05:43 · 294 阅读 · 0 评论 -
B. Jury Size(贪心)
题目链接————题目大意就是,每一个任务需要执行若干天,并且需要若干个人,问执行所有任务最少需要多少人。(一个人在执行一项任务时不能做另一个)很标准的一道贪心题,和move tables 差不多,只要找到含有最多人的一段就行了。但是这个段应该怎么度量,这是月加天来表示的,完全可以只表示为天,就转化为区间问题了。唉,我傻了,天数都算不对。。AC Code:#inclu...原创 2019-08-17 22:23:56 · 259 阅读 · 0 评论 -
C. Maxim and Discounts(贪心)
题目链接————首先在此明确一点,也算是给我自己一个提醒:那就是题意的正确解读,关键点不能疏漏,要像阅读理解一般去解读。题意:一开始给你一个折扣的类型的数量,然后接下来一行是pi值代表折扣(即买了pi个东西后可以免费0~2个商品,但是有个条件,那就是免费的商品的 价值不能大于所装到篮子里的商品的最小价值,另外,一个折扣可以用多次)。然后给再给你需要一个数列代表需要买的 商品的价值,问最小花...原创 2019-08-21 17:27:46 · 206 阅读 · 0 评论 -
C. Balls and Boxes(贪心 + 模拟)
题目链接 ———— 题意大致是 有n个盒子,每个盒子有若干球(也可能没球),然后从一个盒子里把所有球拿出(这个盒子至少有一个球),依次按顺序依次放一个球到每个盒子。列如3 2 5 4 把第三个盒子的球全部拿出,最后会变成4,3,1,6 然后题目给你操作后的序列,然后给你放置最后一个球的位置,问原来的序列是什么。思路:一开始读错题意,以为每个盒子的球数都不能为0,然后一直Wa...原创 2019-08-21 10:53:13 · 320 阅读 · 0 评论 -
poj1017 Packets(贪心)
DescriptionA factory produces products packed in square packets of the same height h and of the sizes 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. These products are always delivered to customers in the square par...原创 2019-06-03 15:51:42 · 248 阅读 · 0 评论 -
排队接水(贪心)
【题目描述】有nn个人在一个水龙头前排队接水,假如每个人接水的时间为TiTi,请编程找出这nn个人排队的一种顺序,使得nn个人的平均等待时间最小。【输入】共两行,第一行为n(1≤n≤1000)n(1≤n≤1000);第二行分别表示第11个人到第nn个人每人的接水时间T1,T2,…,TnT1,T2,…,Tn,每个数据之间有11个空格。【输出】有两行,第一行为一种排队顺序,即11到...原创 2019-06-03 10:49:10 · 5426 阅读 · 0 评论 -
贪心入门——任务执行顺序问题
先上题目,再上解析,enn,参考了一些大佬的文章,总感觉自己对题目的理解能力有点问题,说狠点,就是太弱了。题目如下: 有N个任务需要执行,第i个任务计算时占R[i]个空间,而后会释放一部分,最后储存计算结果需要占据O[i]个空间(O[i] < R[i])。例如:执行需要5个空间,最后储存需要2个空间。给出N个任务执行和存储所需的空间,问执行所有任务最少需要多少空间。输入...原创 2019-03-26 14:40:51 · 1054 阅读 · 0 评论 -
最少拦截系统
Problem Description某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救...原创 2019-03-29 19:34:06 · 1039 阅读 · 0 评论 -
Muddy roads(区间覆盖)
Farmer John has a problem: the dirt road from his farm to town has suffered in the recent rainstorms and now contains (1 <= N <= 10,000) mud pools.Farmer John has a collection of wooden planks ...原创 2019-03-22 18:54:44 · 324 阅读 · 0 评论 -
Ride to school(注意精度)
Many graduate students of Peking University are living in Wanliu Campus, which is 4.5 kilometers from the main campus - Yanyuan. Students in Wanliu have to either take a bus or ride a bike to go to sc...原创 2019-03-22 18:36:39 · 3238 阅读 · 0 评论 -
Radar Installation(贪心:区间选点)
Total Submissions: 116147 Accepted: 25636 DescriptionAssume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locat...原创 2019-03-18 19:06:24 · 291 阅读 · 0 评论 -
FatMouse' Trade
FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.The warehouse has N rooms. The i-th room contains J[i] pounds of Jav...原创 2019-03-12 14:45:21 · 391 阅读 · 0 评论 -
Moving tables
The famous ACM (Advanced Computer Maker) Company has rented a floor of a building whose shape is in the following figure.The floor has 200 rooms each on the north side and south side along the cor...原创 2019-03-12 00:04:03 · 212 阅读 · 0 评论 -
Doing Homework again
Problem DescriptionIgnatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the homework. If Ignatius hands in...原创 2019-03-15 20:38:15 · 510 阅读 · 0 评论 -
Wooden Sticks
Problem DescriptionThere is a pile of n wooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a woodworking machine in one by one fashion. It...原创 2019-03-19 22:46:44 · 463 阅读 · 0 评论 -
入门题----完美字符串
约翰认为字符串的完美度等于它里面所有字母的完美度之和。每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数。约翰不在乎字母大小写。(也就是说字母F和f)的完美度相同。给定一个字符串,输出它的最大可能的完美度。例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77。分析: 由排序不等式,出现次数最多的字母显然应该给26。所以这个题目变成了...原创 2019-03-11 12:30:29 · 478 阅读 · 0 评论 -
开学第四周.two【活动安排问题(二)(覆盖厚度)】
en,这算是必须要掌握的一种贪心策略,算是一种思想,通过下面一个小小的例题来引出有若干个活动,第i个开始时间和结束时间是[Si,fi),活动之间不能交叠,要把活动都安排完,至少需要几个教室?分析:能否按照之一问题的解法,每个教室安排尽可能多的活动,即按结束时间排序,再贪心选择不冲突的活动,安排一个教室之后,剩余的活动再分配一个教室,继续贪心选择……反例: A...原创 2019-03-23 14:56:37 · 202 阅读 · 0 评论 -
贪心入门——独木舟问题
n个人,已知每个人体重,独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人。显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟?分析:一个显然的策略是按照人的体重排序。极端化贪心策略,最重的人要上船——如果最重的人和最轻的人体重总和不超过船的承重,则他们两个占用一条船。否则(因为假设最重的人的体重也不超过船的承重了),最重的人单独占一...原创 2019-03-23 15:33:12 · 924 阅读 · 0 评论 -
Balanced Ternary String
You are given a string ss consisting of exactly nn characters, and each character is either '0', '1' or '2'. Such strings are called ternary strings.Your task is to replace minimum number of charact...原创 2019-04-05 19:43:42 · 348 阅读 · 0 评论 -
poj3262 Protecting the Flowers(贪心)
Total Submissions: 10542 Accepted: 4289 DescriptionFarmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. When he returned, he found to his horror ...原创 2019-06-07 12:45:42 · 176 阅读 · 0 评论