随笔分类 -  贪心

摘要:按解决顺序排列 目录FAIDHECKJGB F 二分答案ans,放最小的前ans个bi(变成必须放完) 因为bi=2^k,所以小的放了可能会拆散大的空间,大的把小的地方占了的话小的可以塞其他地方,所以先放大的 然后暴力能放则放,最多log次指针回到开头 所以一次求解O(nlogn),总复杂度log^ 阅读全文
posted @ 2024-11-16 22:50 gmh77 阅读(31) 评论(0) 推荐(1) 编辑
摘要:a 倒推,每次删掉最后一个b[i]=i的即可 b 一开始发现可以构造完全二分图,使两边和同为S,这样每个点的和=对面二分图点的和=S,然后n=6和为奇数 进一步发现可以直接分成A组组内和为B的组,然后组之间连边,此时S=(A-1)B,有AB=n(n+1)/2 当n为奇数时取A=(n+1)/2,B=n 阅读全文
posted @ 2024-11-09 17:41 gmh77 阅读(5) 评论(0) 推荐(0) 编辑
摘要:给定一个矩阵,构造一个矩阵,使得它满足 两个矩阵每行最大值构成的集合相同 两个矩阵每列最大值构成的集合相同 构造的矩阵每行单峰 构造的矩阵每列单峰 简单构造题 待更 阅读全文
posted @ 2023-04-19 16:42 gmh77 阅读(18) 评论(0) 推荐(0) 编辑
摘要:难度D>E>G>F>B>C>A A 当n>=3时都可以先把min换到位置2,然后随便找两个换,直到n=2时换12,输出min 否则n=2时只能直接换,输出a[2] B 我写的是a+b*c,b,c,当然也可以直接a+b+c,b+c,c C 随便找一个不合法的对(i,j)和(i,j+1),则显然要动至少 阅读全文
posted @ 2022-08-10 16:40 gmh77 阅读(33) 评论(0) 推荐(0) 编辑
摘要:D - L 题目大意: 3个石子,初始在(0,0)(0,1)(1,0),每次可以把一个石子移到任意位置,满足移动后仍然是类似初始的L形,求移到给定位置的最小步数(石子之间完全相同) T<=1e3,|x|,|y|<=1e9 题解: 有114514种写法,但是大多很难写 CF上一位老鸽的做法:找出L形所 阅读全文
posted @ 2020-12-03 21:35 gmh77 阅读(500) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-12-02 21:08 gmh77 阅读(12) 评论(0) 推荐(0) 编辑
摘要:题目大意 n个数,有一个初始为0的计数器,每选一个数答案会加计数器的值,然后计数器加上该数 有k次计数器归0的机会,求最大答案 题解 我是sb 正数显然直接从大往小选,然后负数从小往大选,如果和小于0了就考虑使用归0 k次归0等价于k+1个挡板,每个数x的贡献为x*到某个挡板的距离 所以把负数排序从 阅读全文
posted @ 2020-11-29 19:33 gmh77 阅读(203) 评论(0) 推荐(0) 编辑
摘要:题目大意 题解 一开始想dp,然后想不出来直接大力猜结论+胡乱构造 显然答案上界是Σmin(2,边i覆盖次数),手玩样例发现可以构出来且举不出反例 考虑构造,显然需要决策的只有覆盖次数>=2的边,则每次把经过这类边剩余路径最少的那条拿出来,随便找一条经过其的路径定向并更新,这样一定可以构出来,然后发 阅读全文
posted @ 2020-11-26 07:59 gmh77 阅读(270) 评论(1) 推荐(1) 编辑
摘要:题目大意 题解 貌似之前杂题讲过,但是完全忘了 先假设n<=D,否则取个min之类的 首先显然可以差分后变成一次对子树操作,则变为二元组(vi,wi)表示代价为wi,贡献为vi,且除了1以外的子树最多选d个 考虑假的贪心:按照vi/wi从大到小排序,之后按顺序选 发现这样有个性质:当vi/wi>vj 阅读全文
posted @ 2020-11-15 22:03 gmh77 阅读(88) 评论(0) 推荐(0) 编辑
摘要:题目描述 题解 经典魔塔模型( 设(ai,bi)表示一个块的0/1个数,块i在块j前满足biaj<bjai,化一下变成ai/bi>aj/bj 如果没有树的限制就直接选,否则如果有一个劣的节点在上面,优的节点在下面,则选完劣的后必须要选优的,可以把优的和其父亲合并,注意相同时要先合并上面的 用堆从大到 阅读全文
posted @ 2020-11-15 15:06 gmh77 阅读(108) 评论(0) 推荐(0) 编辑
摘要:题目大意 一棵黑白灰的树,每次选择一个连通块内的一个子点集将其删掉,不能同时删黑白点,求最少删完的次数 n<=2e5 题解 不是这DE加起来怎么还没有C难写啊 发现把树删成两个连通块不比从外往内删优,因为可以同时删更多的点 又发现灰色点一定不会先删,一定是相邻的点只剩一个时跟着那个点一起删 转化一下 阅读全文
posted @ 2020-11-06 20:15 gmh77 阅读(257) 评论(0) 推荐(0) 编辑
摘要:题目大意 题解 结论:一个长度为x的最优解一定是x-1加上当前加上后贡献最大的数 证明: 设x-1集合为S,假设加上一个数x,并且x不在最终的集合里面 设最终是S+S2,把S2中最小于x中最大的x的那个拿出来,设为y 一个数的贡献可以写作ai*k+bi,如果存在i<j且ai>aj那么显然i必选 因为 阅读全文
posted @ 2020-09-25 18:59 gmh77 阅读(193) 评论(0) 推荐(0) 编辑
摘要:题目大意 题解 把一个点拆成两个点,L->R和R->L连成二分图,n-匹配数就是链数,链数-1就是答案 所以贪心匹配就行了,最后根据首尾LR情况有4种,LR和RL在存在LL或RR时都可以消掉 如果同时存在LR和RL且没有LL和RR就会挂掉,所以在找的时候优先构出LL和RR即可 这样的话就不会同时有L 阅读全文
posted @ 2020-09-08 22:40 gmh77 阅读(219) 评论(0) 推荐(0) 编辑
摘要:题目大意 一个长度2n的ab各n个的ab串,每次可以同时删第i个a和第i个b,求剩下的最大字典序的串 n<=3000 题解 菜 把a当作+1b当作-1,在前缀和为0的位置划开变成若干段,那么删只会影响到段的内部 结论:在同一个段内,每个ab对(x,y)的x和y的大小关系相同,否则一定会经过前缀和为0 阅读全文
posted @ 2020-09-07 17:17 gmh77 阅读(225) 评论(0) 推荐(0) 编辑
摘要:题目描述 题解 必须要发掘出性质才能搞,乱找找不满 一草稿纸的114514越看越草 发现5只出现一次,而且14是114的子串 显然可以想到每次按最近的来匹配,一次找出一个114514 发现114511451414会挂掉,原因是把第二个5的114给拆掉了 1的数量最多,所以只考虑总量不考虑单独每个 对 阅读全文
posted @ 2020-07-13 11:07 gmh77 阅读(272) 评论(0) 推荐(0) 编辑
摘要:题目描述 n define fo(a,b,c) for (a=b; a=c; a ) define ll long long // define file using namespace std; int n,i,j,k,l; ll m,s; int main() { ifdef file freo 阅读全文
posted @ 2020-05-23 08:34 gmh77 阅读(170) 评论(0) 推荐(0) 编辑
摘要:题目描述 小 H 是一个建筑师,他接到了一个任务——按照计划图搭建一排楼房。计划图上从左到右 给出了 n 个非负整数,对于第 i 个数 h i ,它表示在 i 这个位置搭建出来的楼房的高度不能小于h i 。 小 H 搭建楼房的方式也很特别。在每一时刻,它总可以让相邻的两个楼房分别增高 1 个单 位和 阅读全文
posted @ 2020-04-17 11:05 gmh77 阅读(322) 评论(0) 推荐(0) 编辑
摘要:题目描述 题解 怒草题解 类似burnside,可以得出循环节个数为gcd(n,k) 把每个循环节拉出来变成一个环,答案即为每个环的相邻元素乘积和 对于每个环首先把最大的放在中间,然后左右轮流从大到小放 可以感受到一个数大于另一个数时两边的数之和必然大于另一个数的和 所以不能交换,即为最优 code 阅读全文
posted @ 2020-02-23 18:53 gmh77 阅读(265) 评论(0) 推荐(0) 编辑
摘要:题目描述 题解 一种~~显然~~的水法:max(0, (点权 边权之和 2)) 这样会挂是因为在中途体力值可能会更小,所以考虑求 走完每棵子树所需的至少体力值 考虑从子树往上推求出当前点的答案 设每棵子树 从根往下走 的所需体力值为f,走完的贡献为sum 由于要加上 当前点 儿子 这条边,所以实际上 阅读全文
posted @ 2019-09-22 14:20 gmh77 阅读(278) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示