摘要: ## T1 染色 直接操作分块,可以做到 $O(n\sqrt{n})$ 。(显然树剖求 lca 约为 $O(1)$ ) code ```cpp #include #include #include #include using namespace std; const int max1 = 1e5, 阅读全文
posted @ 2023-07-10 15:51 KafuuChinocpp 阅读(17) 评论(0) 推荐(2)
摘要: ## T1 字符串 正解做法是将原问题转化为两棵树点集求交,直接上扫描线。 考场上尝试使用 SAM 解决,由于 SAM 的 parent 树是一个压缩后缀字典树,因此考虑将询问插入到这个字典树中,比较显然的方法是直接树剖,通过二分 + 哈希可以 $O(\log n)$ 跳一个重链,总复杂度可以做到 阅读全文
posted @ 2023-07-03 19:58 KafuuChinocpp 阅读(20) 评论(0) 推荐(3)
摘要: ## T3 函数 首先存在结论 $f(a+2C)=f(a)+2C$ 。 简单证明,设 $b=2f(a)-a+1$ ,那么 $f(b)=f(a)+C$ ,设 $d=2f(b)-b+1$ ,那么 $f(d)=f(a)+2C$ ,同时: $$ \begin{aligned} d&=2f(b)-b+1\\ 阅读全文
posted @ 2023-07-01 20:46 KafuuChinocpp 阅读(25) 评论(0) 推荐(2)
摘要: 话说我的习惯是一套题全部改完后才写题解,然而上次的题解停留在 $20.1$ ,这足以看出近两日的颓废现状。 由于昨天晚上做了个噩梦,所以今天的题解先扯点别的。 目前初步鉴定噩梦是由 Fate Zero 中 Caster 的行为引起的。 比较显然 Caster 及其御主都是以他人的痛苦为乐的人。 在现 阅读全文
posted @ 2023-06-30 09:16 KafuuChinocpp 阅读(26) 评论(0) 推荐(2)
摘要: 我是越来越摆了,一下午就改了一道题;而且这么菜,看了半天的题解做法还没看懂。又是被暴踩的一天。 ## T1 树染色 比较套路的想法是考虑当前以 $u$ 为根的子树,考虑第一次选择 $u$ 子树内的叶节点,此时我们必须选择 $u$ 以上的节点作为链顶,这会对方案数产生贡献。 考虑通过第一条链划分子问题 阅读全文
posted @ 2023-06-18 07:59 KafuuChinocpp 阅读(42) 评论(1) 推荐(3)
摘要: ## T1 矩阵 正解做法是二维分块,然而直接上树状数组跑的飞快,不过我写的根号重构,加 Fastio 后可过。 code ```cpp #include #include #include #include using namespace std; char buf[1 '9' ) c = gc( 阅读全文
posted @ 2023-06-15 19:34 KafuuChinocpp 阅读(15) 评论(0) 推荐(1)
摘要: ## T1 掌分治 由于当前分治中心的贡献为其所在连通块的大小,因此考虑统计每个点 $u$ ,对于当前分治中心 $root$ 的贡献,也就是统计当前分治中心 $root$ 与点 $u$ 连通的方案数。 设随机选择分治中心形成的序列为 $p$ ,如果原图是一棵树,不难发现这等价于 $root\to u 阅读全文
posted @ 2023-06-13 10:41 KafuuChinocpp 阅读(25) 评论(0) 推荐(2)
摘要: ## T1 计数 首先考虑计数有标号可重叠的方案数,容易发现此时 $x,y$ 两维独立,因此考虑其中 $1$ 维,设 $f_{i,j}$ 表示此时考虑到第 $i$ 对左右边界 $(x_{i,1},x_{i,2})$ ,离散化后的 $x$ 坐标形成了 $j$ 个点时的方案数,容易发现此时数轴上存在 $ 阅读全文
posted @ 2023-06-10 22:21 KafuuChinocpp 阅读(24) 评论(0) 推荐(2)
摘要: ## T1 天地一抹红 容易想到使用 dp 解决问题,设 $f_{i, j}$ 表示初始法力值为 $0$ ,从 $(i, j)$ 走到点 $(n, m)$ 后的最大法力值。 转移显然有: $$ f_{i, j} = \max(f_{i + 1, j}, \max_{k > j}(f_{i, k} + 阅读全文
posted @ 2023-06-07 16:26 KafuuChinocpp 阅读(21) 评论(0) 推荐(2)
摘要: ## T1 铲雪 通过打表可以发现 $2^{23}\equiv 2^{47}\pmod{998244352}$ ,因此对于前 $22$ 次平方操作,直接暴力修改即可,超出 $22$ 的平方操作,对每个位置维护长度为 $24$ 的平方数组,那么每次操作就是简单的数组循环移动,线段树维护即可。 code 阅读全文
posted @ 2023-06-06 18:55 KafuuChinocpp 阅读(21) 评论(0) 推荐(1)