随笔分类 -  基础算法 -- 贪心

摘要:CF1504D Flip the Cards(找规律+贪心) 题目大意:给你n张牌,正反面都有数字,保证所有牌上的数字在$[1,2n]$内且互不相同。你可以翻转任意张牌,接下来需要把牌按正面的数字从小到大排序,需要保证排序后牌背面的数字是从大到小。给出初始时牌的状态,问最少需要多少次翻转才能符合要求 阅读全文
posted @ 2021-04-10 18:03 guapisolo 阅读(62) 评论(0) 推荐(0)
摘要:题目大意:给你一个序列,让你提取出一个子序列A,剩余的部分组成子序列B,现定义seg(x)表示把序列x中相邻的相同数合并成一个数后,序列x的长度,分别求seg(A)+seg(B)的最大值和最小值,n=1e5 考场上并没有想出最小值做法,只会最大值的贪心,下考才知道可以DP做?? 最大值的贪心: 维护 阅读全文
posted @ 2021-02-11 11:26 guapisolo 阅读(105) 评论(0) 推荐(0)
摘要:Day3B CF1012C(DP) 题目大意:给你一个序列,定义第i个位置为山峰当且仅当h[i-1]和h[i+1]均小于h[i],现在可以减少某些h[i]的值,代价为减少的量的总和。对于1到n/2(向上取整)的每个数j,需要求出当序列里至少有j个山峰时,需要付出的最小代价 考场再次弱智,我想个**的 阅读全文
posted @ 2021-01-20 22:22 guapisolo 阅读(122) 评论(0) 推荐(0)
摘要:争取年末冲完 阅读全文
posted @ 2020-12-13 12:12 guapisolo 阅读(79) 评论(0) 推荐(0)
摘要:朴素做法暴力DP,O(nk)过不去。。。 1 #include <cmath> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #define N1 2005 6 #define ll long long 7 usi 阅读全文
posted @ 2020-10-18 11:18 guapisolo 阅读(225) 评论(0) 推荐(0)
摘要:还有不几天就省选了,一定要稳住心态,倍加努力 2019 3 27 T1 spy (打表) 题目大意:已知$b_{i}=\sum\limits_{i=0}^{n-1} f((i\;or\;j)\;xor\;i)a_{i}$,现在给出$b$数组,让你还原$a$数组。$n\leq 2^{20}$ 打表题. 阅读全文
posted @ 2019-03-28 22:33 guapisolo 阅读(73) 评论(0) 推荐(0)
摘要:题目大意:略 传送门 硬是把两个题拼到了一起= = $dijkstra$搜出单源最短路,然后$dfs$建树,如果$dis_{v}=dis_{u}+e.val$,说明这条边在最短路图内,然后像$NOIP2018 D2T1$那样的思路,贪心地选出当前节点的所有子节点里,未被访问过的编号最小的节点递归,回 阅读全文
posted @ 2018-12-27 19:46 guapisolo 阅读(160) 评论(0) 推荐(0)
摘要:题目大意:给你一个串,求这个串被最少数量的回文串拼起来的次数,两个回文串可以重叠拼接,但必须保证重叠的部分完全相同 先用$Manacher$预处理出最长回文半径$p_{i}$。 再用最长双回文串的方法,处理出数组$e_{i}$,以$i$为开头最长回文串结尾的位置 在已经被遍历到的位置中,选择$e_{ 阅读全文
posted @ 2018-11-26 19:12 guapisolo 阅读(148) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-11-05 14:35 guapisolo 阅读(14) 评论(0) 推荐(0)
摘要:题目大意:给你一棵边权为1的树,让你加入一些边,使得根节点(1号节点)到其他节点的最短距离不大于2 并没有想到贪心...... 正解的贪心思路是这样的 用一个堆维护当前距离最远的点,然后把根节点和它的父节点连起来 这样,父节点周围一圈的节点到根的距离都不大于2,把这些节点都从堆里删除 实际操作的时候 阅读全文
posted @ 2018-10-24 13:02 guapisolo 阅读(286) 评论(0) 推荐(1)
摘要:题目大意:让你构造一个括号序列,括号匹配的方式类似于栈,给出从左数每个括号 到和它匹配的右括号的 最小和最大距离,让你输出一个合法括号序列 看错题了以为是二分图,然后写了搜索 贪心发现如果距离往小了填,不会影响结果 括号必须套完整的括号,所以距离必须是2的整数倍+1 如果一个括号匹配上了,那么两个括 阅读全文
posted @ 2018-10-23 08:31 guapisolo 阅读(443) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-10-22 16:07 guapisolo 阅读(11) 评论(0) 推荐(0)
摘要:题目大意:给你一棵树,让你对叶节点分组,保证每组中,任意两个叶节点之间的距离不大于K,求最小的组数 手动yy的贪心竟然对的 对于每个节点,维护一个$ma[i]$,表示在$i$节点的子树内 未被分组的叶节点到$i$节点的最长距离 那么,对于每个节点,把它的子节点按照$ma[i]$排序,那么如果这个点的 阅读全文
posted @ 2018-10-18 19:49 guapisolo 阅读(155) 评论(0) 推荐(0)
摘要:题目大意:给你一个序列,让你对它重新排列,保证a[i]<=a[i/k],求字典序最大的排列 洛谷传送门​​​​​​​ 把i/k和i连边,发现形成了一个类似于小根堆的树形结构 先是一个错误的贪心:贪心每次选择前size[x]大个数依次填到树里 这种方法在有重复数字的时候会出锅,比如1112,如果用上面 阅读全文
posted @ 2018-10-09 15:43 guapisolo 阅读(301) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-10-02 09:44 guapisolo 阅读(11) 评论(0) 推荐(0)
摘要:题目大意:有N个站点的轻轨站,有一个容量为C的列车起点在1号站点,终点在N号站点,有K组牛群,每组数量为Mi(1≤Mi≤N),行程起点和终点分别为Si和Ei(1≤Si<Ei≤N)。计算最多有多少头牛可以搭乘轻轨。 一道经典的贪心题目,每当一头牛上车的时候,如果超载,我们就优先踢出去行程终点比较远的那 阅读全文
posted @ 2018-09-24 22:03 guapisolo 阅读(283) 评论(0) 推荐(0)