08 2021 档案

摘要:[SCOI2012]喵星球上的点名 \(\text{Solution:}\) 第一问很简单,直接树状数组实现子树数颜色就好了。问题在第二问。 第二问的感觉不是很好,无从下手。第一个想法是考虑是不是可以用线段树合并来做这件事,但感觉会很麻烦,并没有想清楚怎么做。 参考题解区的做法也没有详细讲解,这里根 阅读全文
posted @ 2021-08-31 21:19 Refined_heart 阅读(33) 评论(0) 推荐(1) 编辑
摘要:Acwing392 会合 \(\text{Solution:}\) 简单题……确实 这是一个基环树森林上找两点换上最短移动方案的题。慢慢考虑其性质。 每个点有且仅有一条出边 这意味着这一定是 内向基环树森林 。 还有更重要的意义:环有顺序! 求两个点移动到一个公共点上 首先考虑两个点共同在一棵树内的 阅读全文
posted @ 2021-08-30 13:05 Refined_heart 阅读(43) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2021-08-29 15:16 Refined_heart 阅读(0) 评论(0) 推荐(0) 编辑
摘要:这里记录一下写代码犯过的错误。 基环树找环的时候要判断走到这一个环上点为止 每次新找环都要清空栈 找到环不要贸然 return, 要在这一次 dfs 中标记好所有点。 如果要累计贡献并改变节点位置,先累计贡献,再移动节点。 如果有形如无法匹配的 \(dp\) 失配,记得它可能会记录某些状态来继续转移 阅读全文
posted @ 2021-08-29 14:45 Refined_heart 阅读(93) 评论(0) 推荐(0) 编辑
摘要:CF700E Cool Slogans \(\text{Solution:}\) \(dp,\) 思路都是对的 又死细节上了 对 SAM 的理解还是不够……(或者应该说是 \(dp\)) 首先考虑一下什么情况我们可以接上一个串。题目给的是出现了两次,那转化到 SAM 上,我们如何用已知信息来判别? 阅读全文
posted @ 2021-08-28 20:40 Refined_heart 阅读(42) 评论(0) 推荐(0) 编辑
摘要:[NOIP2016 提高组]天天爱跑步 \(\text{Solution:}\) 被迫回来搞树论了)看自习找一个字符串看看) 大概题意:求多少路径满足每个点其对应 \(w[x]\) 是恰好路径上第 \(w[x]\) 个点。 稍微画一下图就会的……淦 没认真分析题目性质就看 sol 了,不应该啊…… 阅读全文
posted @ 2021-08-26 12:58 Refined_heart 阅读(40) 评论(0) 推荐(0) 编辑
摘要:CF666E Forensic Examination \(\text{Solution:}\) 一个基本的思路是考虑如何对 SAM 上的点维护其子树内在每个串的出现次数。 那这个东西是显然的线段树合并,打标记合并即可。 接下来考虑如何迅速找到一个串的 parent 树上的对应点。那对 \(S\) 阅读全文
posted @ 2021-08-25 07:41 Refined_heart 阅读(35) 评论(0) 推荐(0) 编辑
摘要:扰动法 考虑将求和式收尾拆出来并对其和的形式找到对应方程。 求 \(\sum_{0\leq k<n}kr^k\) \[ S=\sum_{0\leq k<n}kr^k\\ = \sum_{1\leq k\leq n}kr^ k-nr^n\\ = S+\sum_{1\leq k\leq n}r^k -n 阅读全文
posted @ 2021-08-24 19:43 Refined_heart 阅读(146) 评论(0) 推荐(0) 编辑
摘要:CF204E Little Elephant and Strings \(\text{Solution:}\) 第一眼看上去就已经很广义 SAM 了。 考虑我们对每一个子串维护它在多少串中出现过。对每一个串的尾节点进行染色,问题就变成在 parent 树上求子树颜色数的问题。可以用 dfs序 转化成 阅读全文
posted @ 2021-08-23 18:44 Refined_heart 阅读(48) 评论(0) 推荐(0) 编辑
摘要:[HAOI2016]找相同字符 \(\text{Solution:}\) 第一个想法,考虑对一个串建立自动机,另一个在上面匹配统计答案。 写完发现被样例 hack 了,原因是往字符后面新加入一个后缀字母后的答案不好统计的样子。 考虑直接换成广义 SAM ,求每一个点在两个串里面的出现次数,其对应答案 阅读全文
posted @ 2021-08-23 18:38 Refined_heart 阅读(38) 评论(0) 推荐(0) 编辑
摘要:SP8093 JZPGYZ - Sevenk Love Oimaster \(\text{Solution:}\) 坑人的 spoj 不给数据)傻逼的笔者做到了 CF204E Little Elephant and Strings 才仔细想明白自己为啥子树数颜色错了好久…… 显然,建立好广义 SAM 阅读全文
posted @ 2021-08-23 16:24 Refined_heart 阅读(49) 评论(0) 推荐(0) 编辑
摘要:[NOI2015] 品酒大会 \(\text{Solution:}\) 思考一下,两杯酒相似的本质是什么。 考虑把每一杯酒都看成是一个原串的 后缀 ,这样它们的相似程度本质就是其后缀的最长公共前缀。 那这个东西长得就很后缀树 \(dp\) 了。和差异那题一样。(我卡在这里是因为自己傻逼以为每个点都需 阅读全文
posted @ 2021-08-23 11:41 Refined_heart 阅读(45) 评论(0) 推荐(0) 编辑
摘要:[HEOI2016/TJOI2016]字符串 \(\text{Solution:}\) 记录一下这题获得的启发。 最长公共前缀/后缀一类问题,具有可二分性。 考虑二分一个答案,然后看如何检验。 如果答案是 \(mid,\) 那么对应的串应该就是 \(s[c\cdots c+mid-1],\) 我们发 阅读全文
posted @ 2021-08-22 20:21 Refined_heart 阅读(34) 评论(0) 推荐(0) 编辑
摘要:CF1037H Security \(\text{Solution:}\) 代码中给出了封装好的线段树和后缀自动机。 考虑没有 \(L,R\) 限制怎么做。 显然直接在上面跑匹配:先按照 \(T\) 来跑,如果中间只能找到比他大的,就直接输出;然后是两种情况:一种是将 \(T\) 完整匹配完了,另一 阅读全文
posted @ 2021-08-22 18:47 Refined_heart 阅读(54) 评论(0) 推荐(0) 编辑
摘要:「2017 山东一轮集训 Day5」字符串 \(\text{Solution:}\) 考虑只有一个串的时候,答案就是所有本质不同子串。 那么多个串,自然联想到把它们拼在一起建立 SAM. 但是如果这样,我们匹配到的一定是拼接起来的串上的连续一部分,并不是全部的答案,因为这里除了每一个串内它是可以断开 阅读全文
posted @ 2021-08-21 22:31 Refined_heart 阅读(48) 评论(0) 推荐(0) 编辑
摘要:[AHOI2013]差异 \(\text{Solution:}\) 观察一下原式: \[ \sum_{i=1}^n\sum_{j=i+1}^n \text{len}(i)+\text{len}(j)-2\text{lcp}(i,j) \] 我们发现前面那个 \(\text{len}(i)+\text 阅读全文
posted @ 2021-08-21 20:56 Refined_heart 阅读(51) 评论(0) 推荐(0) 编辑
摘要:[BJOI2020] 封印 \(\text{Solution:}\) 求一个字符串一段区间与 \(t\) 的最长公共子串。 考虑 SAM 与 AC 自动机相似的性质,按照惯例 ,我们先对 \(t\) 建立 SAM ,在上面跑出对 \(s\) 的每个前缀,其能与 \(t\) 匹配的,以 \(s_i\) 阅读全文
posted @ 2021-08-21 19:23 Refined_heart 阅读(40) 评论(0) 推荐(0) 编辑
摘要:CF235C Cyclical Quest \(\text{Solution:}\) 还是对 SAM 上一些细节的处理和理解…… 首先一个循环相当于是一个串删掉首字母再把它插入到后面形成的。 观察插入的过程,就是平凡的在 SAM 上面匹配的过程。 那删除怎么办?我们要知道 SAM 是后缀的自动机! 阅读全文
posted @ 2021-08-21 10:35 Refined_heart 阅读(63) 评论(0) 推荐(0) 编辑
摘要:[TJOI2015]弦论 感觉啥都不会就来补自己的弱项了…… \(\text{Solution:}\) 第 \(k\) 小的子串,这东西长得很平衡树。 回忆一下,我们在平衡树上找第 \(k\) 大的做法:记录左右孩子的 \(siz,\) 与 \(k\) 比较大小,不断二分。 那么,同样地,在这题里面 阅读全文
posted @ 2021-08-20 22:17 Refined_heart 阅读(67) 评论(0) 推荐(0) 编辑
摘要:[SHOI2016]黑暗前的幻想乡 少有的自己逐渐发现了容斥思路的题…… 题目大意:要求原无向图的生成树个数,满足每条边被建立的公司不同。 \(\text{Solution:}\) 观察到了我们有 \(n-1\) 个公司,所以在题目的限制下,满足条件的生成树恰好所有公司都参与。所以我们不需要考虑每条 阅读全文
posted @ 2021-08-20 13:40 Refined_heart 阅读(29) 评论(0) 推荐(0) 编辑
摘要:今天讲了线性代数,顺带复习了一下之前没有认真学的高斯消元以及矩阵求逆。 高斯消元: 考虑一个满秩的系数矩阵,它意味着有唯一解;而不存在唯一解的充要条件就是其行列式为 \(0.\) 那么考虑如何求解方程组:用初等行变换的形式将矩阵消成上三角矩阵,从而我们得到了最后一个未知数的解,再进行回代即可。 也可 阅读全文
posted @ 2021-08-19 21:02 Refined_heart 阅读(845) 评论(0) 推荐(1) 编辑
摘要:[Violet]蒲公英 \(\text{Solution:}\) 简单分块。由于信息不具有区间可减性一类的东西,线段树一类就不好维护了,考虑用分块来维护。 首先将值离散化,然后考虑预处理:\(p[i][j]\) 表示前 \(i\) 个块中 \(j\) 的出现次数, \(s[i][j]\) 表示块 \ 阅读全文
posted @ 2021-08-18 20:12 Refined_heart 阅读(54) 评论(0) 推荐(0) 编辑
摘要:PYXFIB \(\text{Solution:}\) \[ \sum_{i=0}^{n/k}\binom{n}{i\times k}F_{i\times k} \\ =\sum_{i=0}^n \binom{n}{i}F_i[k|i] \\ =\sum_{i=0}^n\binom{n}{i}F_{ 阅读全文
posted @ 2021-08-17 09:55 Refined_heart 阅读(38) 评论(0) 推荐(0) 编辑
摘要:小猪佩奇学数学 \(\text{Solution:}\) 考虑单位根反演。 \[ \frac{1}{k}\sum_{i=0}\binom{n}{i}p^i(i-i\bmod k) \\ \text{Part1:} \\ \sum_{i=0}^n \binom{n}{i}p^i i \\ =np\su 阅读全文
posted @ 2021-08-16 23:10 Refined_heart 阅读(87) 评论(0) 推荐(0) 编辑
摘要:LJJ 学二项式定理 \(\text{Solution:}\) 观察到这个东西的下标是带 \(\bmod\) 的,而且组合数的形式很像二项式定理。考虑单位根反演把下标的 \(\bmod 4\) 去掉。 \[ \sum_{i=0}^n \binom{n}{i}s^ia_{i\bmod 4} \\ =\ 阅读全文
posted @ 2021-08-16 19:43 Refined_heart 阅读(49) 评论(0) 推荐(0) 编辑
摘要:[NOI2018]你的名字 \(\text{Solution:}\) 首先考虑 \(l=1,r=|S|\) 怎么做。 那么问题就变成了 \(T\) 中有多少本质不同子串没有在 \(S\) 中出现过。 考虑做一个差分,就变成了:有多少本质不同子串在 \(S\) 中出现过。 考虑对每个 \(T\) 的前 阅读全文
posted @ 2021-08-04 19:42 Refined_heart 阅读(118) 评论(0) 推荐(1) 编辑
摘要:持续更新中 第二类斯特林数:定义为把 \(n\) 个数划分成 \(k\) 个非空集合的方案数,记为 \(S(n,k)\) 那么考虑枚举新加入一个数应该放在哪里,就有递推式: \(S(n,k)=S(n-1,k-1)+k\cdot S(n-1,k)\) 有一个重要的等式: \(n^m=\sum_{i=0 阅读全文
posted @ 2021-08-01 22:00 Refined_heart 阅读(41) 评论(0) 推荐(0) 编辑
摘要:点分树 | 震波 \(\text{Solution:}\) 是点分树的模板,这里讲一讲点分树。 本质就是把点分治的每一层分治重心给记录下来了,自然就形成了一棵树,并且树高是 \(O(\log n)\) 的。这很显然。 那么,考虑点分治的过程,实际上就是从点分树从根往下计算答案的过程了。 如果我们要计 阅读全文
posted @ 2021-08-01 21:46 Refined_heart 阅读(98) 评论(0) 推荐(0) 编辑