摘要: Public Round 1 A 删数 这个题太奇怪了啊!!! 一步显然的转换:求出原序列的差分数组,相当于每次把相邻两项相同的数合并成他们的和,要删去最多的数。 哪些数有可能被一起删掉:1.正负一定相同;2.去掉二进制的最后的 \(0\),剩下部分相同,实现方式是令 \(x\rightarrow\ 阅读全文
posted @ 2024-07-24 21:31 xlpg0713 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 字符串哈希 众所周知,字符串比较是 \(O(|S|)\) 的。这样就很难接受,所以需要字符串哈希。 哈希的基本思想即构造某个易于计算的函数,使得相同的两个状态函数值相同,不同的两个状态函数值大概率不同。 不妨将字符串视作模质数 \(p\) 意义下 \(b\) 进制数,字符集的每一个字符向 \([1, 阅读全文
posted @ 2024-07-24 21:30 xlpg0713 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 他妈的我怎么这么唐。 需要观察性质,这个所谓的删除最多进行 \(\log n\) 步。这是因为一轮删除后一个点被保留当且仅当跟他相连的点有一个被选。即每次删除会让极大联通块大小减半。 然后就唐完了。我赛时以为策略是删除 \(\log n\) 次最大权独立集,然后这个是假的,然后就唐完了。 不妨设 \ 阅读全文
posted @ 2024-07-24 21:29 xlpg0713 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 双倍经验。 先随便设一个根。考虑树上一条边的贡献,即他被包含在多少个点对的匹配中。设较深的节点的子树大小为 \(sz\),那么贡献即为 \(\min(sz,n-sz)\)。 如果可以构造使得每条边都达到这个上界,那么一定最优。 还是考虑随便钦定一个根,划分成若干颗子树,一个匹配的两个端点要么在一个子 阅读全文
posted @ 2024-07-24 21:28 xlpg0713 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 好难评的证明。 最后的答案形式是 \(\operatorname{dis}(1,n)+2k\),那么若 \(n\not\equiv\operatorname{dis}(1,n)\) 无解。考虑答案的下界,即 \(1\) 到 \(n\) 的这条链。现在要将点限定在这条链上,方案是钦定 \(\opera 阅读全文
posted @ 2024-07-24 21:28 xlpg0713 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 什么构史玩意。 首先你会一个 \(O(2^n(m+\operatorname{poly}(n)))\) 的暴力。状态数有足足 \(2^{35}\) 这么多,过不了。然后就不会了。 答案是模 \(2\) 输出,这启示我们很多状态对答案其实都没有影响,于是仍然搜索,记录每个位置是不填不确定或者已经填数, 阅读全文
posted @ 2024-07-24 21:28 xlpg0713 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 图是借用官方题解的。考虑钦定一个最小生成树的加边顺序。 黑色边是一颗生成树。对于 \(7\) 号边,对他最紧的限制是其权值一定大于 \(3\) 号边。对每一条限制连有向边,那么最后形成的一定是一个拓扑图。 考虑算他的贡献,从后往前加边,先加非树边再加树边,例如以上这个图的加边顺序为 \(\text{ 阅读全文
posted @ 2024-07-24 21:27 xlpg0713 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 666,不会真的有人推式子的时候能抄错了吧。 根据题目给出的条件,轻松列出式子: \(xd+y\equiv yd+x\mod w\),需满足 \(x<y,y<\min(d,m)\)。移项得 \((y-x)(d-1)\equiv 0\)。 \(d-1\) 为常数,于是取 \(z=\gcd(d-1,w) 阅读全文
posted @ 2024-07-24 21:27 xlpg0713 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 简单题,但是我太菜了。树上路径问题考虑树分治,这里是点分治。 观察答案的形式为 \(ka+b\) 的最大值,这个很简单就可以用凸包维护。 在点分治过程中,记每个点 \(x\) 到根上路径的点权和为 \(a_x,b_x\)。对于一个根的每一颗子树,维护只有黑点和白点的凸包,答案(凸包)的形式是一个黑色 阅读全文
posted @ 2024-07-24 21:26 xlpg0713 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 给定长为 \(n\) 的序列 \(a\),一次操作可以指定 \(l,r\),将 \(a_l,a_{l+1}\cdots a_r\) 中最大值与最小值调换位置,在 \(q\) 次操作以内将 \(a\) 变为另一指定序列。 首先要发现这个东西是可逆的,意思是做两次相同的操作不会改变这个序列。也即:如果一 阅读全文
posted @ 2024-07-24 21:26 xlpg0713 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 我怎么这么能随到 slope trick 题。这个翻译有点太简单了,去原题看数据范围。注意 \(d_i\) 指 \(i\) 到 \(i+1\) 这条边的单位代价,\(p_i\) 指 \(i\) 号点生产一单位粮食的代价。 有一个很显然的费用流做法,但可惜他过不了。 发现这样的一个链式结构,如果我们选 阅读全文
posted @ 2024-07-24 21:26 xlpg0713 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 题目要求的这个东西显然是单调的,于是我们先套上一个二分。现在的问题就是每个点可以向左或向右延伸一个 \(x\) 的长度,是否能覆盖整个环。 这个问题我们现在还不会做,但是很容易秒掉它的序列版本,设 \(f_i\) 表示前 \(i\) 条线段能覆盖的最长长度,易于得到三条转移: \(f_i=\max( 阅读全文
posted @ 2024-07-24 21:25 xlpg0713 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 花火可爱,虽然日语里的花火指烟花。翻译写得很清楚,不再说一遍了。 slope trick 板子题,大概到不了黑。 设 \(f_{i,x}\) 表示第 \(i\) 个时刻在 \(x\) 的最小代价,易于写出 dp 方程: \(f_{i,x}=\sum\limits_j\left[t_j=x\right 阅读全文
posted @ 2024-07-24 21:25 xlpg0713 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 谔谔,点分治题。 以 P4292 为例:求出树上一条边数在 \([L,R]\) 之间的路径,使得边权和除以边数最大。 考虑在点分治过程中动态统计这个答案,即经过当前分治中心且满足条件的路径中权值最大的。 考虑判定一个答案\(x\) 是否合法,即: \(\frac{\sum w}{|S|}\ge x\ 阅读全文
posted @ 2024-07-24 21:24 xlpg0713 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 哎哎,我怎么什么都不会啊。 参考了董克凡的集训队论文和这篇博文 写着写着发现太长了,于是把一些专题性的东西重新开了一篇来写。 线性规划 一般用于解决满足线性约束条件下的线性函数极值问题。 对于一组实数 \(a_1,a_2\cdots a_n\) 与一组变量 \(x_1,x_2\cdots x_n\) 阅读全文
posted @ 2024-07-24 21:21 xlpg0713 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 简单题,首先你要会一个 slope trick。 题意 给出一颗有根树,你可以花费 \(k\) 个代价将某个点的权值增大或减小 \(k\)。 现在想使这棵树的每个点都比子节点的点权大,请你求出最小的代价。 题解 先考虑一个简单点的问题:要求权值不小于儿子的权值。 设 \(f_{x,i}\) 为最终 阅读全文
posted @ 2024-07-24 21:20 xlpg0713 阅读(5) 评论(0) 推荐(0) 编辑