随笔分类 - 题解
各种题目的题解。
摘要:对于离散的食物,$w$ 相同的只留下美味值最大的 $W/w$ 个,因为再多了也没用不会更优。所以一共只有 $\sum_{i=1}^n \frac{W}{i}=\mathcal{O}(W\log n)$ 这样暴力背包复杂度就是 $\mathcal{O}(W^2\log n)$. 然后考虑连续的怎么做。
阅读全文
摘要:2022.12 upd:原先代码锅了,重写了一份。 看上去是比较常规的题,应当需要更灵敏的直觉和更快的速度解决这道题。 首先考虑若已经确定一个 $x$,那么贪心修改策略就是随便找一个非 $0$ 的位置操作,因为早操作晚操作这个地方都要操作。 之后就考虑一个距离 $x$ 为 $i$ 有一个 $1$,那
阅读全文
摘要:首先不考虑只有 $1$ 或者只有 $-1$ 的平凡情况。 令 $z$ 为 $1$ 的个数,$f$ 为 $-1$ 的个数,若有 $f\geq z$,那么可以构造使得最大子段和为 $1$(因为有 $1$ 出现所以最大子段和至少为 $1$),只需要让 $1$ 和 $1$ 不能相邻即可。那么即为在 $-1$
阅读全文
摘要:写了两个小时写吐了,你告诉我这玩意 2400? 如果不管假期的话,那么每一周必然会有一个项目跟进一次进度。那么答案就是线性的。即使有假期的存在也没关系,每个假期顶多就只会拖延一周的时间。 所以只需要暴力模拟每一天有哪些人工作了,完成了哪些项目的一个进度就可以了。 我的方法是对每个星期几维护一个 se
阅读全文
摘要:写倍增 LCA 被卡常了/fn 首先考虑令 $a_i$ 为权值是 $i$ 的点的编号。询问实际上是想要求出一个最大的前缀使得这个前缀里面的点在树上构成了一条链。 不难看出这个信息是可以合并的,也就是可以用线段树记录区间 $[l,r]$ 内的点是否能够被一条链所覆盖,并且这条链最短时两个端点是什么。只
阅读全文
摘要:由于子序列匹配是贪心能匹配就匹配,所以想要判断一个点 $u$ 是否有一条到 $n$ 的失配的路径,最优一定是选择已经匹配个数最少的那条路径继续往后走。 所以令 $dis_u$ 为 $1$ 点走到 $u$ 点是最短已经匹配到了 $B$ 的哪个前缀。然后 $(u,v)\in E$ 则更新 $dis_v\
阅读全文
摘要:只会 $\mathcal{O}(3^nn^2)$,打开题解一看怎么还真是这个玩意/jy 首先集合之间形成一个 sum 和 pos 的二维偏序,那么思路就是对一维扫描线,然后另一维搞个什么东西。具体到这个题就是按照集合 sum 枚举集合,然后用状压 dp 记录 pos. 按照 sum 扫描线,令 $f
阅读全文
摘要:暴力是,每次挑出最小的两个合并。 需要观察到没有产生贡献的次数很小。考虑最小的那个数的大小,如果一次合并没有产生贡献,那么最小的数至少 $\times 2$.所以最多会有 $\mathcal{O}(\log (qx))=\mathcal{O}(\log q+\log x)$ 次。 根据这个来观察还有
阅读全文
摘要:令 $len_i=r_i-l_i=1$,$all=\prod len_i$,如果一对点 $(x,y)$ 若都能染成颜色 $c$,则对答案贡献 $dis(x,y)\frac{all}{len_xlen_y}$. 对颜色编号维进行扫描线,现在问题就是每次将一个点染成黑色或者白色。求所有黑色点对 $(x,
阅读全文
摘要:首先可以不管套件,假定 $n<m$,那么答案不超过 $\mathcal{O}(\log n+\frac{m}{n})$,也就是先倍增把 $n$ 造出来,然后一步步造 $m$. 答案这么小,那么常见的套路就是把答案放进复杂度里。 然后考虑一个 dp,假设当且在第 $o$ 轮,令 $f_i$ 为手中最牛
阅读全文
摘要:状压 dp + 费用提前计算。 考虑假如已经确定好了选出那些数(称作标记点),计算一下代价。 毛估估贪心就是先让它们尽量靠中间聚在一起,然后内部再算算逆序对。 尝试把这个东西均摊到每一个位置上,首先是让它们聚在标记点的中位数附近,那么每一个非标记点的代价就是左右两侧标记点个数的 $\min$(有这么
阅读全文
摘要:先对每个位置 $i$ 对集合幂级数 $x^0+x^1+\cdots +x+x^{a_i}$ FWT,那么询问就是将区间里面所有 FWT 后的集合幂级数作点积再 IFWT 后提取 $x^s$ 的系数。 首先可以通过对于每个 $x^k$ 记录系数的前缀积(注意有 $0$ 可能不存在逆元,所以实际上是一个
阅读全文
摘要:可能在多项式大手子面前是一个基础内容,可是菜菜只能靠青蛙一步步教导才会......因为没写代码,可能有的式子还推错了。 首先确定 $H_x$ 合法取值范围也就是 $[w+Lx,w+Rx]$,个数是 $\mathcal{O}(Rn)$ 的。 那么求出 $H_x-H_1$ 的可能的差值每种有多少个方案,
阅读全文
摘要:直接考虑模拟 Kruskal. 假设有 $k$ 个二进制位。 首先加入权为 $1$ 的边,那么二进制下前 $(k-1)$ 位相同的在一个连通块里。 加入权为 $2$ 的边,二进制下前 $(k-2)$ 位相同的连通。 加入权为 $3$ 的边,由于 $x\operatorname{xor}y=3$ 一定
阅读全文
摘要:看到题就先容斥。然后容斥系数太难算了就寄了,大概要分好几种情况讨论,于是就弃了。 不容斥也能做。考虑限制将串划分成了若干段,然后一段一段 dp. 有没有什么好的方法描述这个性质?这里考虑的是,如果强制 $[l,r]$ 至少出现一个 $1$,那么就让 $r$ 及以后的点,让它们往前找第一个 $1$ 的
阅读全文
摘要:看上去异或里面套了层加法不好拆位,但是依然可以对每个二进制位处理。 现在考虑第 $k$ 位,那么产生贡献的数字对一定满足以下条件之一: 第 $k$ 位相同且前 $(k-1)$ 位进位; 第 $k$ 位不同且前 $(k-1)$ 位不进位。 那就按照前 $(k-1)$ 位排序,然后能产生进位的一定是一个
阅读全文
摘要:「CSP-S 2022」假期计划 $1\to a\to b\to c\to d\to 1$ 中 $a,b,c,d$ 是 $4$ 个不同的景点是突破点,数据范围允许枚举其中的两个。便很自然想到枚举中间的 $b,c$,并用合法且最优的 $a,d$ 对答案进行统计。 可以预处理出 $1\to a\to b
阅读全文
摘要:构造半平面莫队?/jk 注意到对于一个半平面的直线,通过平移和旋转经过的点数,一定大于等于它们的对称差,因为对称差中的点会被经过奇数次,不在对称差中的点会被经过偶数次。那么可以将问题转化成构造出一个移动直线的方案,使得经过给出的每个直线,而且使得经过的点尽可能的小。 考虑一个事实,如果现在半平面的直
阅读全文
摘要:给定一个长度为 $n$ 的置换 $p$,以及一个正整数 $k$. 对于一个置换 $q$,要求对于所有满足 $1\leq i<j\leq n$ 的 $i,j$,有以下不等式成立: $$ p_{q_i}\leq p_{q_j}+k $$ 现在请求出满足条件的置换 $q$ 中,逆序对数最小的 $q$,它逆
阅读全文
摘要:先 orz qyc 先考虑枚举 $a$ 和 $b$ 中间有 $i$ 个点,那么中间这些边边权的分配就是一个插板法 $\binom{m-1}{i}$,树中剩余 $(n-1-(i+1))$ 条边的边权就可以任意选了,这部分方案数是 $m^{n-i-2}$. 然后考察树的形态,发现这里相当于 $(i+2)
阅读全文