随笔分类 -  题解

摘要:设 fu,0/1 表示以 u 为根的子树,u 所在的联通块内有 0/1 个黑点的方案数。 设 vu 当前枚举到的儿子。 则转移方程为: fu,1=fu,1×(fv,0+fv,1)+fu,0×fv,1 $ 阅读全文
posted @ 2022-10-28 18:41 Kobe303 阅读(8) 评论(0) 推荐(0) 编辑
摘要:首先有一个显而易见的性质:每次取都是取最大的一个数。 然后就变成了加数,取最大值,加数,取最大值。。。 ~~直接单走一个优先队列(~~ 但是很明显这个数据不打算把优先队列放过去。 发现一个数加入集合时,如果它比集合中所有数都大,那它就会马上被拿走。 所以我们单独处理这些数。 把这些数去掉以后,剩下的 阅读全文
posted @ 2022-10-28 14:39 Kobe303 阅读(21) 评论(0) 推荐(0) 编辑
摘要:可以将移动的数量最小化改成不移动的数量最大化。 于是预处理出 li,ri 表示 i 出现的最左/最右位置。 设 fi 表示 [i,n] 中能不移动的最大数量,cntai 表示 [i,n]ai 的出现次数。 则 fi 先能继承 fi+1 阅读全文
posted @ 2022-10-28 08:22 Kobe303 阅读(18) 评论(0) 推荐(0) 编辑
摘要:好自闭,这种状态打个锤子 CSP。。 可以发现以下几个结论: 如果 u>v,那么一定无解。 存在一种方案,使得 u 每次加上的 v 都是 2 的次幂。因为如果 v=2a1++2ak,a1<<ak,那么可以依次将 u 阅读全文
posted @ 2022-10-27 22:23 Kobe303 阅读(16) 评论(0) 推荐(0) 编辑
摘要:不难发现,包含关系只可能是短的路径被长的路径包含。 那么我们考虑按照路径长度从小到大,一条一条路径边加入边判断。 考虑先将树上的所有边断开,每加入一条路径的时候就将这条路径上包含的边加入,用并查集维护连通块的点数。不难发现,如果加入一条路径后,这条路径所在连通块的点数与当前加入的这条路径上的点数不同 阅读全文
posted @ 2022-10-27 19:56 Kobe303 阅读(14) 评论(0) 推荐(0) 编辑
摘要:首先可以发现一些有用的性质: 每个数至多操作一次 如果一个数,在原数列中有它的倍数,那么改变成那个数一定是最优的。否则可以改变成所有数的最小公倍数。 贪心的,按出现次数从小到大依次改。 对两种情况分别跑一次,取个 min。 Code: #include <bits/stdc++.h> usin 阅读全文
posted @ 2022-10-27 19:14 Kobe303 阅读(28) 评论(0) 推荐(0) 编辑
摘要:首先不难发现最终答案中只会出现 ci 中的数,所以可以将 ci 离散化。 设 fi,j,k 表示区间 [l,r],最小值不小于 k 的最大收益,cnti,j 表示区间穿过 i,且区间的 cj 的区间数量。 枚举最小的位置 p,则有转移: $ 阅读全文
posted @ 2022-10-27 07:34 Kobe303 阅读(17) 评论(0) 推荐(0) 编辑
摘要:首先可以发现一个性质,只会在叶子节点建造塔。 发现节点 u 可以收到信号等价于以 u 作为根的时候至少有两个不同的子树内有 hu 的塔。 选高度最大的点作为根,则根的子树里至少有两个子树内有高度 hrt 的塔。 所以非根的节点只需要保证自己子树内有一个节点上的 阅读全文
posted @ 2022-10-26 21:32 Kobe303 阅读(15) 评论(0) 推荐(0) 编辑
摘要:假如某一位有奇数个 1,那么无论怎么拆分这一位都会有贡献。 那么先把这些贡献加起来,然后去除掉这些位。 发现剩下来的位都是偶数个 1,也就意味着,无论怎么拆分,拆分出来的两个数的肯定相等。 那么就是求从一些数中选出若干个数,使得它们的异或和最大。 那么这个就是可以用线性基解决的。 时间复杂度 阅读全文
posted @ 2022-10-26 20:28 Kobe303 阅读(18) 评论(0) 推荐(0) 编辑
摘要:考虑当左端点固定时,区间的 & 和至多有 logw 种,因为 1 的数量是单调不升的。 所以我们可以枚举区间左端点 i,然后 ST 表预处理区间 & 和 + 二分求出一段 & 和相同的区间。 然后设 prei 表示原序列的前缀异或和,那么设当前这段 & 和相同的 阅读全文
posted @ 2022-10-26 19:40 Kobe303 阅读(28) 评论(0) 推荐(0) 编辑
摘要:设第 i 列高 hi,建立序列 hi 的小根笛卡尔树,然后树形 DP。 发现这样就将原来不规整的图形剖分成若干个矩形: 我们发现,这样构成的若干个矩形正好对应小根笛卡尔树上的所有节点,每次递归处理的两个小联通块正是当前节点的两个儿子。根据定义,对于节点 x 代表的矩形,它的长度是 阅读全文
posted @ 2022-10-26 13:13 Kobe303 阅读(21) 评论(0) 推荐(0) 编辑
摘要:树形 DP 完全不会。。 首先将题目条件改一下:每个人有 xvi 块钱,要求使所有人的钱数非负的最小操作次数。 注意到对于节点 u,在子树 u 内至多操作 sizu1 次。 所以可以设 fi,j 表示在子树 i 内,操作 j 次,使得除节点 i 以外其余 阅读全文
posted @ 2022-10-25 21:24 Kobe303 阅读(18) 评论(0) 推荐(0) 编辑
摘要:先设 n=x+y+z。 首先将三元组 (a,b,c) 替换成二元组 (e=ba,f=ca)。即先默认所有人拿金币。 然后问题转换为在 n 个二元组中选 y 个获得 e 收益,选 z 个获得 f 收益,最大化总收益。 对于两个二元组 $(e_i,f_i),(e_j, 阅读全文
posted @ 2022-10-25 15:44 Kobe303 阅读(35) 评论(0) 推荐(0) 编辑
摘要:设 valu 表示树中 1u 路径上的点权异或和。 那么 uv 路径上的点权异或和为 0 说明 valuvalvalca(u,v)=0。 不难发现因为值域没有限制,所以改变了点 u 的点权之后,一定不存 阅读全文
posted @ 2022-10-25 10:52 Kobe303 阅读(20) 评论(0) 推荐(0) 编辑
摘要:与 CF932E,CF1278F 其实差不多捏。 首先 m 中奇数个数是 m2,偶数个数是 m2。下文为了方便记 $p=\left\lceil\frac{m 阅读全文
posted @ 2022-10-25 08:13 Kobe303 阅读(15) 评论(0) 推荐(0) 编辑
摘要:与 CF932E 其实是差不多的捏 设 p=1m,q=1p,那么枚举第一张是王牌的次数,有如下式子: ni=1(ni)piqniik
后面那个 ik 可以展开为第二类斯特林数: $$=\sum_{i=1}^{n} 阅读全文
posted @ 2022-10-25 07:24 Kobe303 阅读(12) 评论(0) 推荐(0) 编辑
摘要:先介绍这样一个等式: nm=mi=1{m i}×i!×(ni)
等式左边的组合意义是 m 个不同的球放入 n 个不同的盒子里的方案数。 右边就是枚举非空盒子的数量 $i 阅读全文
posted @ 2022-10-24 22:03 Kobe303 阅读(19) 评论(0) 推荐(0) 编辑
摘要:感觉以前遇到过类似的操作,但是还是不会( 考虑到两次相同的操作会相互抵消,并且答案与操作顺序无关,所以答案至多 2n 种,考虑预处理出来。 首先你得会分治求最大子段和,维护 lmx,rmx,mx,sum,分别表示一段区间的前缀最大子段和,后缀最大子段和,最大子段和,区间和。 于是可以 me 阅读全文
posted @ 2022-10-24 20:41 Kobe303 阅读(21) 评论(0) 推荐(0) 编辑
摘要:相当于一个 ai 匹配一个 bj,满足 aibjdi=bjai,因为原序列有解,即 i,aibi。 如果 ai 匹配 bj 合法的话就是删去 aibj 后检查是否仍有 $\forall i,a_i 阅读全文
posted @ 2022-10-24 18:49 Kobe303 阅读(25) 评论(0) 推荐(0) 编辑
摘要:显然有一个性质: 我们剖成的链都是递增或递减的 如果一条链不是递增或递减的,那我们一定可以断成两条链,使得贡献不减 设 fi,0/1 表示以 i 为根的子树,划分成若干条链,其中 i 所在的那条链是从上往下递减/递增的答案。 设当前在点 u,设 $sum=\sum\limits 阅读全文
posted @ 2022-10-24 14:55 Kobe303 阅读(25) 评论(0) 推荐(0) 编辑

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