![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
陈末iiiiiiiiiiii
Retired
展开
-
Codeforces Round #697 (Div. 3) F 01矩阵行列异或变换 套路题 暴力 思维
题目给你一个01矩阵再给你一个目标01矩阵。你可以进行任意次的整行异或或者整列异或。问当前矩阵是否能通过这两种操作转换成目标矩阵。题解思路以前见过这种题,套路满满。我们可以先使用列异或使得第一行符合全部条件,这样我们就只能使用行异或了,因为一旦使用列异或就会使得第一行不符合要求。直接打暴力就行了。套路题。AC代码#include <bits/stdc++.h>//#include <unordered_map>//priority_queue#define原创 2022-05-05 16:14:12 · 292 阅读 · 0 评论 -
AtCoder Beginner Contest 245 E 贪心 multiset 二分
题目你有n个巧克力和m个盒子,巧克力和盒子都是矩形,所以每个巧克力有对应的长宽,盒子也是同理。一个盒子只能装一个巧克力。问所有巧克力是否都能被装下。题解思路贪心策略。每个巧克力肯定是在大于等于自身长度的盒子中选择一个盒子。选择的盒子的宽度肯定要是大于等于自身宽度的最小的一个。不妨先满足一个条件,我们将盒子与巧克力一起按长度排序。逆向处理,从宽度最大的往前遍历,如果是盒子加入能选择的集合中,如果是巧克力,就二分出情况来。利用multiset就能处理二分宽度以及每个盒子选择完的删除还有重复情原创 2022-03-30 19:21:30 · 1023 阅读 · 0 评论 -
第四届“传智杯”全国大学生IT技能大赛(初赛B组) D 位运算 贪心
题目题解思路贪心 策略将每个素数的首个二进制1累加,这样x的每个1都有可能异或出那个素数。为什么呢,首个二进制1保证了这个素数一定小于等于x。由于这一位另一个数的这个位置肯定是0,并且在这个位置之前的1一定相同,另一个数只能通过调整之后的位数来让异或出来的数等于素数,但是素数首位还是0,所以异或出来的数肯定也小与x。AC代码#include <bits/stdc++.h>//#include <unordered_map>//priority_queue#de原创 2021-12-20 20:21:38 · 288 阅读 · 0 评论 -
Codeforces Round #760 (Div. 3) D 贪心 思维
题目给你有N个数的数组a ,定义操作任意取两个下标不同的数ai , aj ,将他们删除,并将 ai/aj 下取整加入所得分数。你只能进行k次操作,操作后,数组剩余的数需要加入得分中,求所得的最小得分。题解思路贪心为了保证最小,只考虑前2k的数来删除,删小的不如删大的,如果留下大的,就不能保证最小得分了。在2k个数中继续贪心。全局考虑,肯定有大有小,我们总是拿小的去除大的。但是当一个数出现的数量大于k,那这个数对面的数就不是比他大的数了,这样只能得到1。实力不够,心服口服。打ac原创 2021-12-15 14:11:04 · 1360 阅读 · 0 评论 -
Codeforces Round #494 (Div. 3) E 构造图 贪心
题目给你N个点,规定图的最长路径为d,且点的最大的度不超过K。有N-1条边问你是否可以构造出这样的图如果可以,展示一种答案,否则输出NO题解思路可以先将最长路径D建出来,再使用路径中除端点外的点,来延展出新的点。我们必须维护最长距离任然是d,延展时将延展出这个点的点的最长距离入队,这样他的最长距离也能确定(他也有潜力延展)。这样就能保证最长距离是d,度的话,我们每次同时维护即可。这样最后只需确定点使用完了没有。再特判,k=1,与d=1。因为这两种情况,我们没有可以延展的点。AC代码#原创 2021-12-14 11:16:04 · 619 阅读 · 0 评论 -
AtCoder Beginner Contest 231 E 贪心 DFS 记忆化搜索
题目有N种货币,每种对应ai元,a1一定等于1,且ai-1一定是ai的倍数。求出完成一笔X元的交易所需的最小货币数。即支付钱加找钱所需的货币数加起来最小。题解思路贪心策略用这个付完,即不找零。要么用这个多付钱(前提是本来有多,否则就是白费的搜索)然后求最小的找零数。在这两种情况中取min因为a是从1开始的,所以必然能取到数。这题复杂度一言难尽,居然能这么暴力。AC代码#include <bits/stdc++.h>//#include <unordered_map原创 2021-12-12 16:34:06 · 353 阅读 · 0 评论 -
牛客xb月赛34 D 贪心优先队列 思维 经典技巧
题目题解思路这样贪心使得我们每次只查询了有可能成为新的值的情况。属实巧妙。如何将这个两个数组的方法延展成N个数组的。我们先处理出a数组的初始情况,再将a数组逐一和之后的每一个数组使用这个方法,将记录出的前N大的数再次更新进a数组,之后可能N大的值必然从这N个情况中改变。参考这个题解AC代码#include <bits/stdc++.h>//#include <unordered_map>//priority_queue#define PII pair<i原创 2021-12-10 14:12:43 · 537 阅读 · 0 评论 -
2021牛客寒假算法基础集训营4 F 并查集 贪心 思维建边
题目题解思路贪心能拿提升能力大就必须拿,先不考虑给谁。当相同关系的武器但提升能力少的时候,肯定是拿大的。思维建图将武器的分配看成一种关系,即 将两个人连接的桥梁(单人的时候自环即可)。利用并查集让两个人组成一个连通块。即装备可以在这两个人之间选择。当有新装备加入的时候,将连通块扩大,即N-1个装备,肯定在这N个人中选择N-1个人拿装备。有1个人将拿不到装备。当并查集出的两个人已经在同一个连通块中时,即N个人都有装备了,在连通图中表现为自环连通块。当有其他连通块与自环的连通的时候,其他连通原创 2021-11-30 17:08:09 · 504 阅读 · 0 评论 -
2021牛客寒假算法基础集训营3 B 尺取法 双指针 维护双指针 模拟 贪心
题目题解思路我们可以将所有人的5个等级的分数弄在一起从小到大排序,因为A等是有限的,在同分数的时候我们贪心的将A等往后面放。例子当尺取缺一个人的时候这个人的B类分和A类相同但是区间已经用了K个a了,此时用B来才能取出正解。我们的代码只在开头删除cnta,所以我们必须要让结尾最优。尺取的时候 我们维护取到的区间满足有N个人的分数。并且必须选择A的人小于等于K个,此时就可以更新答案。当加入一个分数的时候将这个分数的人有多少个分数在集合++这个分数的人没加过 cntstu++这个分数为A类原创 2021-11-23 17:08:43 · 531 阅读 · 0 评论 -
2021牛客寒假算法基础集训营3 I 贪心 + 最大不相交区间数 好题 线性DP 动态规划
题目题解思路一开始其实是想dp的,想了挺久的递推明明推对了又自我否定了。然后想到了我们最后的序列肯定是类似两个两个相同的连接起来,我们要是把所有两个相同的两个端点变成一个区间。那这题岂不是队最大不相交区间数的问题了,直接排序贪心取即可。动态规划也行的。定义dp[i]为前i 个 数组成的合法子序列中 美观度的最大值转移方程dp[ i ] = max( dp[ i-1 ] , dp[ last[i] ] +1)即可以从之前选择的这个数的最优情况来更新此时的最优AC代码贪心 + 最大原创 2021-11-20 14:41:53 · 390 阅读 · 0 评论 -
Codeforces Round #613 (Div. 2) B 任意区间做法 + 多种做法 STL二分要注意的细节
题目给你一个序列A请你判断是否有一个子区间使得大于等于整个区间的总和。如果有返回NO否则YES题解思路根据之前任意区间的思想,我们可以先处理出前缀和,然后排序,二分判断两个区间差是否大于等于区间总和SP即可。定住一边为s[i] +sp 然后利用lower_bound()判断之后的区间s[k]是否存在大于等于它的。这里需要特判两个都是端点的情况(即s[i]为0,s[k]为sp),当前缀和中不存在等于0和s[k]的数的时候这些判定出答案就是非法的,因为这样就是取整个区间了。这里用lower_原创 2021-11-12 10:08:26 · 389 阅读 · 0 评论 -
Codeforces Round #610 (Div. 2) B2 贪心
题目给你N件商品和价格和你身上有的钱。你有两种操作(操作可以执行多次)一次买一种商品付这个商品的价格同时买K件商品只需付K件商品中最贵的那件的价格。求能买的最多的商品。题解思路一开始想复杂了,做了很久。首先排序。贪心策略满足K件的时候只需付最贵的价格并且是K件连着买的东西。证明如果隔开来买东西的话。这样需要付更贵的价格,但是得出的件数和钱少一点的相同。假设他买了N件的话贪心分配前N%K件的商品需要付出原价。N%K + K — N%K + 2K — N%K + 3K —原创 2021-11-09 16:31:19 · 186 阅读 · 0 评论 -
(AtCoder Beginner Contest 225 E 斜率区间离散化 求最大不相交区间
题目在第一象限给你N个 “ 7 ” (即由 (x-1,y) (x,y) (x,y-1)构成的7字型 )的x , y 。要求删除一部分的7,使得从原点看可以看到尽可能多的7 。链接题解思路难点在于根据题目意思抽象出区间,以及区间离散化 。画图可以知道,每个7带来的影响就是两个斜率((x-1,y) 和 (x,y-1) 分别与原点构成的斜率 )包含的7不能被看到了。这样我们将每个7的两个斜率化为区间,左右,再根据求最大不相交区间的方法就可以过了。但是斜率由于精度会变得非常难处理(趋于正无穷少原创 2021-11-03 21:46:52 · 111 阅读 · 0 评论 -
Codeforces Round #674 (Div. 3) D 任意区间问题 前缀和相同 表示某区间为0 贪心 哈希
题目题解思路和去年省赛的一道题目有点类似。都是通过前缀和来差出区间为0的情况。我们对这个数组进行在线处理前缀和,不断将前缀和放入哈希表键值表示存不存在,如果某个前缀和之前就已经出现了,那么他们之间的区间和必然是0。我们可以之间在这个区间里加一个无限大的值(此时自增操作数 ),使得区间不能为0了,这样之前囤积的区间就要clear()掉,因为他们有潜在的可能和后面的数构成0的区间。这样哈希表里的数就全部要重新开始。但是我们加上一个无限大的数,他们就没有这个潜力成为最大的区间了。这样在线处理就能得出原创 2021-10-27 18:11:56 · 71 阅读 · 0 评论 -
牛客xb月赛39 H 贪心 前缀 后缀和
题目题解思路如果没有魔法,就从1开始有多少斩多少。斩到最后全部结束就是答案。但是有魔法的存在就不好处理了。我们必须贪心出最优的魔法攻击位置。一开始想着最大的地方,但是这个地方可能有很多个。这里用了类似dp 的思想。定义两个前缀后缀和,代表 从 1 到 n 和 从 n 到 1 的最小斩击数 k1[] k2[]。如果我们在i处使用魔法。那么答案就是 k1[i-1] + k2[i+2]这样我们只需从1开始走一遍取最小的ans即可。类似dp 的贪心。AC代码#include <原创 2021-10-26 16:00:25 · 69 阅读 · 0 评论 -
3993. 石子游戏 模拟 前缀和
题目题解思路一开始用全部多的数来二分搜答案,后面wa了才发现是思路错了。因为不一定前面的每次我们都能取到k个数,我们只能通过模拟来让每一步合法。模拟控制 h,每次取的数要尽量靠近K不能大。将将石子堆的数放入桶中,取最大的和最小的作为上下界。求出h数组前缀和这样我们就能O1的求出某一部分的数的个数了。一层一层的控制取出的总石子K的个数当大于时就加一次个数这样就能贪心出最小次数这里可能有点难理解 , 因为j时一层一层往下的所以直接加就是石子数,h[ma] - h[j-1]就是大于J的石子的总原创 2021-10-03 18:55:26 · 67 阅读 · 0 评论 -
105. 七夕祭 贪心 绝对值不等式 环形纸牌均分问题
题目题解思路行间进行交换 不会导致每列的数值改变,列同理 。 所以我们可以分解两个问题 。行的总值如果不能被行数整除那肯定无法使他们相等。列同理。下面就是 对环形纸牌均分问题。参考下面推出的公式公式递推参考文章以及闫总视频可以得到一个绝对值不等式我们只要求出每个C如何取中位数就可以得到最小费用了。AC代码#include <iostream>#include <cstdio>#include <cstring>#include <qu原创 2021-09-25 20:21:09 · 97 阅读 · 0 评论 -
100. 增减序列 差分数组 + 贪心 + 思维
题目题解思路对一段区间的加减 ,首先想到差分 。列出差分数组 ,只需让 f[2] ~f[ n ] 等于 0 即可 让全部数相等 。而对X - X+n 区间的加法操作就是对差分数组第X项 +1 和X+n+1项 -1 的操作。减法符号相反。贪心让所有负数的++正数的–进而抵消 实现最优(操作次数) 。当数不够抵消的时候 让 f[1] 或者 f[1+n]来顶替。因为加减都可以 改变f[1]的 值 会使数列 有更多解 。即多出来的次数就是f[1]可以改变的次数 , 每种情况中 多原创 2021-09-25 10:25:35 · 103 阅读 · 0 评论 -
Codeforces Round #620 (Div. 2) D 贪心 revers 的妙用 编程思维的降维打击
题目题解思路贪心 思路要让最短 就是让大的数尽可能的出现在前面最长则相反一开始想拼接出来,无奈写的太多问题放弃了。AC代码#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <vector>#include <algorithm>#include <map>#include <stri原创 2021-09-24 17:01:00 · 58 阅读 · 0 评论 -
Educational Codeforces Round 114 (Rated for Div. 2) C 二分 + 贪心
题目最近,Petya了解到一款新游戏“杀龙”。顾名思义,玩家必须与龙搏斗。要打败一条龙,你必须杀死它并保卫你的城堡。为此,玩家有一队n英雄,第二个英雄的力量等于ai。根据游戏规则,只有一个英雄应该去杀龙,其他所有的英雄都将保卫城堡。如果龙的防御力等于x,那么你必须派一个至少有x力量的英雄来杀死它。如果龙的攻击力是y,那么守卫城堡的英雄们的总力量至少应该是y。玩家可以用一枚金币将任何英雄的力量增加1。此操作可以执行任意次数。游戏中有m龙,第i条龙的防御力相当于xi,攻击力yi。佩蒂亚想知道他打败第i条原创 2021-09-22 15:18:55 · 100 阅读 · 0 评论 -
734. 能量石 贪心优化问题 + 恰好体积V01背包 动态规划
题目题解思路一开始想直接用 L排序S 和 L 肯定有关系的 所以不能直接做大佬直接推出最优的选择次序了。这样我们只要在这些答案里选出最优即可。因为有些会被消耗完。求恰好的背包DP,为了保证状态都是从起点转移的,要把非起点初始化为无穷大以避免转移而且 这里我们是用最大的体积来枚举所有选择方法,所以恰好用最大的体积时不一定最优,还要往前寻找。墨染空大佬的文章AC代码#include <iostream>#include <cstdio>#include原创 2021-09-20 17:02:12 · 79 阅读 · 0 评论 -
Codeforces Round #538 (Div. 2) B 贪心 整体考虑
题目题解思路整体考虑整个最值,我们可以知道前KM大的数一定可以加上。区间分成k份,每份取前M个,整合一下就是 全部前KM大的数 。我们只需标记这些数,对每个区间都取到M个即可。学长这里用了个骚操作来解决负数问题这里B数组存的是编号,这样就是存储了A数组降序排的时候的原编号。这里太妙了。bool cmp( int t1 , int t2 ){ return a[t1] > a[t2];} for (int i = 1 ; i <= n ; i++ ) {原创 2021-08-17 00:30:35 · 49 阅读 · 0 评论 -
POJ - 2976 二分枚举答案 最大化平均值
题目题解思路白书里的例题,直接对浓度进行枚举。对每个浓度贪心的判断是否可行。将方程转变,浓度带入后排序贪心。对于二分枚举答案,答案需要精度时,我们一般直接让答案二分跑100次,而且边界尽量开大点。坑点四舍五入AC代码#include <iostream>#include <cstdio>#include <algorithm>using namespace std;long long a[1010],b[1010]; double c[原创 2021-07-30 15:13:34 · 127 阅读 · 0 评论 -
CodeForces - 1095F 最小生成树 贪心优化建边
题目题解思路裸的最小生成树,比赛时就差一点就写出来了。如果建边不优化那么就有N平方的复杂度了,显然不行。想到了利用点权先贪心出一个最小的,但是想偏了,排序连成一条线了,固有思维,总是以为必须不停的换点。结果只需找到最小的点和其他点建边即可。AC代码#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;c原创 2021-07-27 10:28:24 · 148 阅读 · 0 评论 -
POJ - 3614 贪心+优先队列优化 贪心策略 物尽其用
题目题解思路对于每只鹅,我们尽可能的选择接近的防晒霜。也就是,让鹅的min和防晒霜升序排列,然后研究每个防晒霜对于鹅,符合最小值的,将其的max值加入队列,从小到大出队。让防晒霜物尽其用。AC代码#include <iostream>#include <cstdio>#include <queue>#include <algorithm>using namespace std;struct node{ int ma,mi;原创 2021-07-26 14:53:45 · 86 阅读 · 0 评论 -
POJ - 2431贪心 + 优先队列
题目题解思路贪心思维走到不能走时,不断用之前走过的能加油的最大值加,加到加不了还是走不到就是-1。这样只能判断所有加油站能不能到,这时我们在重点设置一个虚拟加油站来进行上面的操作。寻找最大量加油的过程用优先队列优化。边走边把能加油的加上。AC代码#include <iostream>#include <cstdio>#include <algorithm>#include <queue>using namespace std;st原创 2021-07-25 18:35:54 · 151 阅读 · 0 评论 -
Codeforces Round #706 (Div. 2) AB
A给出一个字符串以及长度N和K,判断字符串能否包含K个回文字符。题解思路按题目模拟,寻找有没有足够的回文字符。AC代码#include <iostream>#include <string>using namespace std;char s[200];int main (){ int t; cin>>t; while(t--) { int n,k; cin>>n>&g原创 2021-07-19 15:32:01 · 67 阅读 · 0 评论 -
Codeforces Round #705 (Div. 2) AB
A在1到N中选择最大的个数组成一个集合,使集合的任意子集不等于K。题解思路从 (k+1)/2到K以及k+1到N中取到。K数可能由多个数取到,多个数最终变成由两个数组成。一大一小,我们必须只能拿一个,拿大的,因为小的可能被更小的组成了,这样就变回了多数组成。AC代码#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <str原创 2021-07-19 14:15:46 · 51 阅读 · 0 评论 -
Codeforces Round #704 (Div. 2) AB
A3个人在游泳池不断的 按一定的时间每圈 游 a , b , c给一个时间点P,求最近多少时间有游泳者经过。题解思路模运算P对每个圈速取模,求出快到达P时间的最后一圈走了多少,用圈速减去这个时间,再对圈速取模,因为有可能最后一圈刚好到了取最小值即可。AC代码#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <str原创 2021-07-18 15:32:54 · 42 阅读 · 0 评论 -
Codeforces Round #703 (Div. 2) AB
A有N个堆栈,每个栈都有非负数。可以进行操作将正数的第i个堆栈减一,传递给下一个堆栈i+1。操作可以进行任意次。判断能否让堆栈严格递增。题解思路贪心,考虑最极端的情况,堆栈的最小的情况数从0开始到n-1。如果前面有多的话,可以将数字全部转移到最后一个堆栈,也符合严格递增。如果前面有少的话,那就不行了,因为无法给前面补充元素。用两个前缀和判断就行了。添加堆栈的时候,判断有没有少元素。AC代码#include <iostream>#include <cstdio&g原创 2021-07-14 23:59:29 · 59 阅读 · 1 评论 -
Codeforces Round #701 (Div. 2) AB
A给出数A和B。每次可以进行 这两步操作求让A变成0,最小的操作步数。题解思路枚举 + 剪枝 。这题让我见识到了剪枝的强大之处。一开始也想到了类似的方法,看到题目数据量大,就不敢写了。其实幂次运算的数据量并不大的我们很容易知道一个答案就是A-B+2,将B加到比A大然后做除法,这是B最大的情况。每次将B不断向前加,再更新最小值,这样可以对枚举的区域进行剪枝。幂次运算剪枝下来也就十多,K一下子变的好小了。AC代码#include <iostream>#include原创 2021-07-14 19:38:06 · 78 阅读 · 0 评论 -
Codeforces Round #700 (Div. 2) AB
AA和B同时操作一个字符串S(将某个位置的字符改变,并且不能相同),A想让字符串字典序变小,B则相反,A先操作。两个人都同时选择最优的情况。每个位置只能被操作一次。求操作后的字符串。题解思路贪心。从前往后A加a,加不了就加b,B加z,加不了就加y。AC代码#include <iostream>#include <cstdio>#include <cstring>#include <string>using namespace std;原创 2021-07-14 14:08:37 · 104 阅读 · 0 评论 -
Codeforces Round #699 (Div. 2) AB
A给一个目标坐标,给出上下左右的运动路径,求在可以删除一部分路径的时候判断能否到达目标点。题解思路暴力出奇迹。因为到达的点必须的步数使和路径没有关系的,所以我们记录上下左右的多少,然后比较到这点必须走的上下左右,有没有够就行了。AC代码#include <iostream>#include <cstdio>#include <cstring>#include <string>using namespace std;int main (原创 2021-07-14 11:45:04 · 56 阅读 · 0 评论 -
训练赛Round #8 被B题卡太久了
A给一串序列可以任意的添加数字让每个相邻两个数 满足 小的数的两倍 大于等于大的数求满足条件且添加次数最小的情况题解思路一开始还感觉很难 , 认真看了看,直觉 ,直接贪心,不断把 不满足条件中的两个数中的 小的数的两倍加到之间 加到 加不了 (符合两倍小于等于大的数的)就行了。AC代码#include <iostream>#include <cstdio>#include <cstring>#include <queue>#inclu原创 2021-07-13 16:19:21 · 68 阅读 · 0 评论 -
POJ - 1017 装箱问题(贪心)
题目题解思路一开始想用优先队列,结果不知道怎么用上去。翻了翻大神的题解。根据3456的个数来判断满足3456至少需要多少箱子,再根据3456空缺的位置,优先填2,因为1最终可以又2分解出来,而1不能分解出2。最后判断2 1 的个数是否符合条件,不符合就加箱子。AC代码#include <iostream>#include <cstdio>#include <algorithm>#include <queue>using namespa原创 2021-07-05 18:04:47 · 126 阅读 · 0 评论 -
POJ - 3190 区间重叠变式 贪心 优先队列
题目N (1 <= N <= 50,000)题解思路将区间按左端点升序排列,然后将一层一层数轴用优先队列来处理,优先队列存储最大右端点和层数的标号(因为我们最后要得到每个区间对应的数轴编号)因为左端点是升序的,我们让优先队列按右端点的从小到大出队。这样我们能保证,此时的队头数轴是能放的最优数轴。如果还是放不下(重叠了),就新增一个数轴并且编号即可。AC代码#include <iostream>#include <cstdio>#include <q原创 2021-07-05 11:01:44 · 110 阅读 · 0 评论 -
POJ - 1328 区间贪心 区间覆盖 挺多细节的
题目题解思路首先我们将问题抽象化,利用勾股定理用区间来表示这个岛在岸上大炮能放的位置,我们要做的就是将区间重复的位置找出来,这样我们就可以节省大炮了。将区间按右端点从大到小排序,按从右到左来遍历处理。当发现左端点够不到新点的右端点时,我们要新增一门大炮,并将左端点更新为这个新点的左端点。当发现够得到时,我们就可以节省大炮了,但是我们这门大炮的范围会受到他的影响,有可能这个点的左端点太大了比这个大炮左端点还大时,我们要更新大炮的左端点当发现某点的高度大于大炮的半径时或者大炮半径为负时,我们要进行原创 2021-07-04 16:17:04 · 100 阅读 · 0 评论 -
POJ - 2376 区间贪心 区间覆盖
题目题解思路左端点从小到大,对右端点从大到小,这样保证了初始节点的最优,再根据两个极限情况特判 初始节点的左端点大于1,或者右端点等于t。这样我们只要在初始节点的基础上上,贪心的 找到左节点符合要求右节点又能最远的情况。这个贪心策略很容易想到,但是代码实现还是有点难,用了大量标记来解决。AC代码#include <iostream>#include <cstdio>#include <algorithm>using namespace std;s原创 2021-07-03 17:44:03 · 138 阅读 · 0 评论 -
POJ - 3069 区间贪心问题
题目题解思路参考大佬的文章讲解区间贪心区间贪心分为三种,此题属于区间覆盖。我们先将点从小到大排序,如何用一个R的距离来看看能覆盖最远的点,将该点选为标记,然后继续往前覆盖R的距离以内的点。AC代码#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int a[1010];int main (){ int r,n; while(~原创 2021-07-03 16:03:48 · 168 阅读 · 0 评论 -
POJ - 3617 贪心 双指针 字符串处理
题目题解思路运用双指针,对两边的字符大小做比较,拿小的,当发现他们相等时不能乱拿,要扫一遍看看之后有没有更小的在一边,如何有就拿那一边的。这样就能保证字典序最小。输出要注意了,80个字符要换行。AC代码#include <iostream>#include <cstdio>#include <algorithm>#include <string>using namespace std;string s,t;int check(原创 2021-07-03 09:31:13 · 103 阅读 · 0 评论