随笔分类 - 学习总结
摘要:实在是难以相信我竟然又来到了机房训练。 P10141 [USACO24JAN] Merging Cells P 一个简单的 \(dp_{i,l,r}\) 表示最后如果剩下的是 \(i\),当前 \(i\) 所处的区间是 \([l,r]\) 的概率。 区间往外拓展当前仅当当前 \([l,r]\) 区间
阅读全文
摘要:这大概是最后一篇近期练习了。 P8365 [LNOI2022] 吃 与 CF2023F 很相似,对于 \(a_i\) 分类,\(a_i\) 相同的最多只会选 \(b_i\) 大的前 \(\log_{a_i}V\) 用于加。 所以考虑 dp,设 \(f_{v}\) 表示少乘了 \(v\) 的贡献后最多
阅读全文
摘要:板刷 ARC,再不刷就退役了。 ARC185A mod M Game 2 猜结论题,两个人牌的总和是 \(n\times (n+1)\)。若 \(n\times (n+1)\bmod m=0\) 或 \(> n\) 先手获胜。 显然手牌还有大于 \(1\) 张的时候不可能失败。 和取模 \(m\)
阅读全文
摘要:CF1442D Sum 很显然可以设 \(f_{i,j}\) 表示当前处理了前 \(i\) 个数组,选了 \(j\) 个数的最大值,然而转移需要 \(O(k)\)。 考虑挖掘题目数据元素非降的性质。猜个结论呢? 因为元素是逐渐变大的,所以越往后选就一定越优。所以,至多只有一个数组没有被选完。 这个很
阅读全文
摘要:CF1993F2 Dyn-scripted Robot 这个题非常的一眼,首先翻转路径的操作可以转化为翻转矩形。 也就是,如果触碰了边界不改变行走的路径,而是继续走下去,只不过对应的位置需要对称回去。 那么,计算走到 \((0,0)\) 的次数,也就是在反转后的坐标系里的 \((2k_1w,2k_2
阅读全文
摘要:CF1261F Xor-Set 我们把 \(A,B\) 集合分别处理,把其拥有的区间放到字典树上,就会拆成 \(O(n\log V)\) 个区间。 考虑其两两组合,每个区间都是形如前面若干位确定,后面 \(x\) 位任意。 两个区间组合,就是取 \(x\) 更大的那个后面都是任意的,前面的若干位合并
阅读全文
摘要:CF461E Appleman and a Game 我们可以先建出 SAM,设 \(dp_{i,u}\) 表示当前处理到 \(i\) 位,SAM 上到 \(u\) 节点当前最小答案。 由于答案具有单调性,考虑二分答案,也就是二分 \(mid\),考虑如何检验最短的串是否不超过 \(\le n\)。
阅读全文
摘要:CF1930E 2..3...4.... Wonderful! Wonderful! 我们相当于计算 \(01\) 串的个数,\(0\) 表示删除了,\(1\) 表示还保留着。 考虑 \(01\) 串合法的条件:首先 \(0\) 的个数为 \(2k\) 的倍数;其次存在 \(1\) 使得其左侧和右侧
阅读全文
摘要:P5044 [IOI2018] meetings 会议 对于 \(h_i\le 20\) 的数据,我们每个点维护单调栈,其代价为 \(x\) 的时候,取的位置是一个区间。 很显然已经有一个莫队算法,支持区间加,区间查询即可。然而不优。 其实单调栈与笛卡尔树是相似的,考虑建出笛卡尔树。 我们假设就对
阅读全文
摘要:P3349 [ZJOI2016] 小星星 我们想到状压 dp,设 \(dp_{S,u,rt}\) 表示 \(u\) 子树由 \(S\) 集合的点构成,根节点是 \(rt\) 的方案数。 这样的话,转移需要枚举子集,是过不了的。这里应该使用容斥。 尝试把编号是一个 \(1\sim n\) 的排列这一条
阅读全文
摘要:CF1677E 本题转化之后就是矩阵覆盖,矩阵查询被覆盖的点数。现在将讲解线段树如何实现这个。 扫描线的话将转化为求区间为 \(0\) 个数的历史和,历史和是很难的。 注意到我们每次把当前序列加入历史和去也就是把区间为 \(0\) 的位置加 \(1\)。 所以我的想法是在线段树节点上加一个标记 tm
阅读全文
摘要:AGC060C 由于 \(A,B\) 分别位于树的左链和右链,所以我们不妨把这两个链剥出来。 考虑从小到大加数,从根开始向叶子加。 不妨设 \(f_{i,j}\) 表示左链加 \(i\) 个数,右链加 \(j\) 个数,并且最后分别是 \(i\) 先的概率。 传统外向树拓扑序是 \(n!\prod
阅读全文
摘要:P3488 [POI2009] LYZ-Ice Skates 我们对于鞋码为 \(x\) 的人,贪心地,显然先把鞋小的给他穿。 所以就有了一个暴力的检验方法:从左往右扫,并对应修改。但是这样太慢。 这是一个二分图匹配问题,考虑 Hall 定理。 对于任意 \(1\le l\le r\le n\),当
阅读全文
摘要:P3354 [IOI2005] Riv 河流 如果我们设 \(f_{u,j}\) 表示子树 \(u\) 内放了 \(j\) 个伐木场的答案,发现很难转移。 我们多加状态,设 \(f_{u,i,j}\) 表示子树 \(u\) 放了 \(j\) 个伐木场,木材全部运到 \(i\) 去最小代价。\(i\)
阅读全文
摘要:P6619 [省选联考 2020 A/B 卷] 冰火战士 对于一次战斗,冰火两方能量较少的那方会耗尽,答案为这个能量的两倍。 我们就是要找一个中间值,左边的冰战士能量值之和与右边火战士能量值之和最小值最大。 离散化,我们可以二分找到第一个冰的前缀和大于火的后缀和的位置 \(p\),答案为 \(p-1
阅读全文
摘要:CF1924D 先考虑一个串的最长合法序列,维护一个栈,答案就是右括号加入时栈非空的次数。 我们看成从 \((0,0)\) 走到 \((n,m)\),发现没被匹配的右括号个数就是 \(x-y\) 的最大值。 要想只有 \(k\) 个匹配,那么要和 \(x-y=m-k\) “相切”。 若 \(f(k)
阅读全文
摘要:P5892 有一个很明显的 \(O(n^2\log n)\) 暴力,也就是枚举左右端点,然后区间查询前 \(k\) 大。 主席树即可维护前 \(k\) 大。 考虑优化,盲猜决策单调性,于是用分治法求出。 P4067 答案是 \(全部和-k 以内的和-(全部个数- k 以内数目)\times k\)。
阅读全文
摘要:P4766 [CERC2014] Outer space invaders 不难发现时间的先后顺序是不重要的。所以把时间转化到数轴上。 数据范围提示区间 dp,设 \(f_{l,r}\) 表示 \([l,r]\) 时间里面全部消除的代价。 \(f_{l,r}=\max(f_{l,k}+f_{k,r}
阅读全文
摘要:P4764 值域为 \([l,r]\) 的生成森林,也就是把值 \(\ge l\) 的边拿出来生成森林,其中边 \(\le r\) 的权值和。 我们现在要求所有 \(l\),$\ge l $ 边的生成森林中边有哪些。 考虑从大往小加边,设当前加入第条边 \((u,v,w)\)。 因为这条边最小,所以
阅读全文