随笔分类 -  DP

摘要:按解决顺序排列 目录FAIDHECKJGB F 二分答案ans,放最小的前ans个bi(变成必须放完) 因为bi=2^k,所以小的放了可能会拆散大的空间,大的把小的地方占了的话小的可以塞其他地方,所以先放大的 然后暴力能放则放,最多log次指针回到开头 所以一次求解O(nlogn),总复杂度log^ 阅读全文
posted @ 2024-11-16 22:50 gmh77 阅读(31) 评论(0) 推荐(1) 编辑
摘要:题目描述 n个人,每个人的初始分数不同(具体分数未知) 有m次已知的Revue(按顺序发生),每次Revue形式为(x,y),意为x打败y,之后x的分变成二者max,y变成min 现在你要按顺序在最后加入w次Revue,要保证 在所有m+w次Revue中删掉任意k(k给出)次Revue后 的 所有初 阅读全文
posted @ 2024-11-16 22:45 gmh77 阅读(22) 评论(0) 推荐(0) 编辑
摘要: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) 编辑
摘要:题目 题解 题目给了很重要的性质,就是保证询问的[l,r]是合法括号串(没有的话可能要莫队+二分找?) 假设给出的s串是合法括号序,按照树转括号序的方法逆向转成树,用左括号下标作为树上点的标号 例如 ()(()()) ,则有root-1, root-3, 3-4, 3-6,方法是维护左括号的栈,加入 阅读全文
posted @ 2024-11-09 10:27 gmh77 阅读(6) 评论(0) 推荐(0) 编辑
摘要:题目 题解 神奇题 定义题目要求的“合法序列”为 ai[1,n],ai+ai+1ai+2 定义长为l的斐波那契序列Fibl为序列 {fib1,fib2,,fibl} 定义两个数列的和为右对齐然后按位相加(不足补 阅读全文
posted @ 2024-11-06 20:59 gmh77 阅读(59) 评论(0) 推荐(1) 编辑
摘要:题目 n<=20 题解 想了半天3位状态的折半,然后发现空间开不下(时间也不太行) 所以放弃思考,直接枚举答案 答案是a中的一个集合,设为S;记集合S的和为sum[S] 考虑当S确定时,有多少种方案能使答案恰好为sum[S]。为了处理多种sum相同的情况,记S为从前往后考虑,第一次出现最大ans的集 阅读全文
posted @ 2024-08-29 22:33 gmh77 阅读(9) 评论(0) 推荐(1) 编辑
摘要:官方题解:https://blog.csdn.net/qq_62464995/article/details/127493921 # 题目大意 给出一棵边权为1的树,构造排列p,使得 ①p[1]=1 ②dis(p[i],p[i+1])=3时,一定有解,考虑构造: 把树上的点**按层黑白黑白染色**, 阅读全文
posted @ 2023-05-08 12:04 gmh77 阅读(144) 评论(0) 推荐(0) 编辑
摘要:一开始想给i只加一条ai的链,然后发现不太对,取中点取到非原树上的点,并且还要特判u=v 然后~~看题解~~发现加两条链就都解决了 然后变成动态直径问题: https://blog.csdn.net/weixin_62887323/article/details/128667759 大概是求出欧拉序 阅读全文
posted @ 2023-03-22 20:57 gmh77 阅读(98) 评论(0) 推荐(0) 编辑
摘要:来源:ec final2018(gym102056) E,化简之后的问题 问题:给出n个位置,每个位置可以填+1-1,求多少种方案使得前缀和>=x(不要求最后为0) 一般来说可以枚举最后的和(最终位置),然后容斥变成①任意-②必定穿过x碰到x-1这条线,画出折线然后翻折第一次碰到x-1之后的部分,这 阅读全文
posted @ 2023-02-15 11:39 gmh77 阅读(37) 评论(0) 推荐(0) 编辑
摘要:一堆的数学和构造题 arc131D - AtArcher 由于区间是对称且向两边递减的,所以有结论: 按x=0分开,两边的点的个数差<=1(如果不是则把多的那边的最后一个移到少的那边,一定更优) 所以可得[0,D-1]中一定有一个,且两边分别是floor(n/2)和ceil(n/2)个 进一步手玩得 阅读全文
posted @ 2022-09-17 13:05 gmh77 阅读(198) 评论(0) 推荐(0) 编辑
摘要:F 太屑了,没写 如果直接暴力记矩阵的话是40*40=1600边长,显然不行 发现如果上下都没有匹配结束,则后面的字母是唯一确定的(按位比较,不同则无解) 设f[i,x]表示串长i,一边匹配到x,则转移大概是枚举另一边要接的串,有Fi=Fi-k*某个矩阵 所以把i也维护进去,维护后5个i转移,总边长 阅读全文
posted @ 2022-09-03 01:18 gmh77 阅读(36) 评论(0) 推荐(0) 编辑
摘要:A 结论:假设在某个位置q减1了,则后面要全选(~~被痛击之后失去理智~~) 证明:如果后面某个位置没选,则可以把第一个q-1的位置和其交换一下,中间的至少+1,后面的不一定-1,极限情况也是中间+1后面不变,一定不劣 由于第一个-1取决于q,所以这些位置一开始都是固定的,在这些位置往前扩展不减1的 阅读全文
posted @ 2022-08-10 17:19 gmh77 阅读(26) 评论(0) 推荐(0) 编辑
摘要:题目大意 猜数,每次询问一个数x返回大于小于等于,代价是数的大小x 设C(n)表示数在[1,n]的最优策略下的答案,求\sum_^{200000}C(i) 题解 显然可以n^3dp:设f[i,j]表示当前数的范围在[i,j]的答案,然后oeis即可得到n^2做法 考虑如何n^2,转移枚举k然后m 阅读全文
posted @ 2020-12-04 22:54 gmh77 阅读(238) 评论(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) 编辑
摘要:题目描述 https://loj.ac/p/3385 题解 dp维护路径线条,每次把当前的线条拆开加上新的 设f[i,0/1,0/1/2]表示点i颜色为0/1,下面已固定了0/1/2个端点的答案 分类讨论,注意可以多折一次来改变i和儿子的颜色,走完的儿子颜色必须为1 一开始拓扑求出0的虚树,在上面d 阅读全文
posted @ 2020-12-02 21:00 gmh77 阅读(195) 评论(0) 推荐(0) 编辑
摘要:题目大意 一个无限长的数轴,初始0时间人在位置0,接下来在ti时位置xi会出现一个蛋糕,必须要在ti瞬间瞬间接住否则失败 人可以在任意时刻放分身,分身接蛋糕但不能动,至多同时存在一个分身,新放的会取代原来的 判断是否能接完所有蛋糕 n<=5000,坐标时间两两不同 题解 做法很多,但是想出一个阳间做 阅读全文
posted @ 2020-11-30 20:27 gmh77 阅读(279) 评论(0) 推荐(0) 编辑
摘要:题目描述 https://loj.ac/p/6611 题解 当s=0时只用考虑相邻两个,所以设f[i,j]表示做完[i,j]的答案,转移枚举最后一个选的k 如果s!=0,那么发现多出来的i+1,i+2与i无关,所以只需要维护i+1,i+2的操作次数 按删的时间建树,则在f[i,j]中维护左链位置以及 阅读全文
posted @ 2020-11-25 20:42 gmh77 阅读(269) 评论(0) 推荐(0) 编辑

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