随笔分类 - 题解
摘要:Div1.A 套路对每一位考虑,不难发现当前位要消掉,\(k\) 一定要是这个位 \(1\) 的个数的因数,所以对所有位的 \(1\) 的个数取 \(gcd\) 就好了,别忘了特判全 \(0\) code Div1.B 考虑贪心,发现对于当前深度 \(now\),我们能跳到的区间是 \([now-a
阅读全文
摘要:关于此题有一种精简的写法。 首先我们分析题面,可以发现如果最后可以达到使 \(1\) 到 \(n\) 的路径距离都相等,那么从 \(1\) 到任意一个 \(1\) 到 \(n\) 的路径上的节点的路径也都相等。所以我们设 \(dis[u]\) 为 \(1\) 到 点 \(u\) 的路径长度,\(di
阅读全文
摘要:题解 NOIP2020 字符串匹配 感谢 @slzs [NOIP2020] 字符串匹配 先枚举单个 \(AB\) 的总长度,有了很厉害的Z函数我们就可以 \(O(1)\) 求出 \(AB\) 的个数 \(k\)。我们可以预处理出 \(S\) 串的前缀的奇偶个数和后缀的奇偶个数。然后我们再确定 \(C
阅读全文
摘要:题解 [AHOI2005] 航线规划 很神的一道树剖题。 [AHOI2005] 航线规划 首先对于关键航线有一个很显然的性质: 如果存在一个环,则环上的所有点都不可能是关键航线 注意到题中给定了 无论航线如何被破坏,任意时刻任意两个星球都能够相互到达。在整个数据中,任意两个星球之间最多只可能存在一条
阅读全文
摘要:极简思路: 先跑一边AC自动机,处理出 fail 数组,然后再把文本串匹配一下,可以获得 vis 数组,代表着 trie 树上的这个点是文本串的前缀。最后只需要再每个模式串跑一遍 trie 树,就可以得到最长的公共前缀长度了。 #include<bits/stdc++.h> using namesp
阅读全文