该文被密码保护。
posted @ 2018-09-26 20:16 menhera 阅读 (3) 评论 (0) 编辑
摘要:题目分析: 对于一个根,假设我们对每个子树分别求出了一种答案,那么怎么合并答案是最小的呢? 首先考虑这些答案里面最大的那个数字,它肯定要融合其它组里面的最大数字。以此类推 所以最好的合并方式是,每个子树的答案从大到小排序,然后依次合并。 然后我们会发现,这个其实是可以划分子问题的,因为如果某个子树不 阅读全文
posted @ 2019-06-05 16:28 menhera 阅读 (13) 评论 (0) 编辑
摘要:题目分析: 对于向上取整我们总有,$\lceil \frac{\lceil \frac{n}{a} \rceil}{b} \rceil = \lceil \frac{n}{a*b} \rceil$这个不难想到。 然后朴素的dp很容易想到,用上面的式子优化一下就行了。 代码: 阅读全文
posted @ 2019-06-04 15:59 menhera 阅读 (33) 评论 (0) 编辑
摘要:题目分析: 观察前3个点,$361=19*19$,所以可以发现实际上就是快速幂,然后模数猜测是$998244353$,因为功能编号里面有这个数字,用费马小定理处理一下。 $pts:12$ 观察第4个点,读入很大而结果很小,说明模数不是很大,所以枚举法,配合欧拉定理可以求出来模数为$1145141$, 阅读全文
posted @ 2019-06-03 22:13 menhera 阅读 (51) 评论 (0) 编辑
摘要:题目分析: 建出后缀自动机,然后把A串用倍增定位到后缀自动机上,再把B串用倍增定位到后缀自动机上。 SAM上每个点上的A串根据长度从小到大排序,建点,依次连边。 再对于SAM上面每个点,连到儿子的边,同时连到儿子的最小A串的边。 对于m组关系,建立x连到y定位到的SAM上的点的边,同时连y所能匹配的 阅读全文
posted @ 2019-05-31 21:34 menhera 阅读 (21) 评论 (0) 编辑
摘要:题目分析: 用数论分块的思想,就会发现其实就是连续一段的长度$i$的高度不能超过$\lfloor \frac{k}{i} \rfloor$,然后我们会发现最长的非$0$一段不会超过$k$,所以我们可以弄一个长度为$i$的非$0$段的个数称为"元",然后用"元"去递推。 这个"元"的求法用DP:令数论 阅读全文
posted @ 2019-05-22 09:35 menhera 阅读 (14) 评论 (0) 编辑
摘要:题目分析: 这题除了分类讨论就没啥了。。。 容易发现问题实际就是所有操作选和不选按顺序执行的所有答案和。考虑每个点在多少种情况下会有tag。 那么,考虑新插入一个[l,r],所有有交集的点都会被清空,所以这些点答案不变。 然后考虑有交集的点中间[l',r']是子集关系的点,这些点答案并不是不变,而是 阅读全文
posted @ 2019-05-20 18:14 menhera 阅读 (150) 评论 (0) 编辑
摘要:题目分析: 按位处理即可 代码: 阅读全文
posted @ 2019-05-01 10:58 menhera 阅读 (35) 评论 (0) 编辑
摘要:题目分析: 答案显然只有{-1,0,1,2}四种。 对于答案等于-1的情况,只有两种情况,一种是只剩一只跳蚤,另一种是只剩两只跳蚤且他们四连通,这个很好判。 对于答案等于0的情况,那说明联通块大于1,把图离散出来连边并查集判就可以了。 对于答案等于1的情况,我们要考虑唯一的联通块是否存在割顶,具体的 阅读全文
posted @ 2019-05-01 10:35 menhera 阅读 (22) 评论 (0) 编辑
摘要:题目分析: 好题!我们发现题目实际是要求出从某个左端点开始跑出去的BB型有多少个和从某个右端点开始跑出去的AA型有多少个。 发现这个问题是对称的,所以只考虑从左端点跑出去的BB型有多少个就可以了。 我们不妨考虑长度为$k$的BB型,那么我们把字符串每$k$个化成一个整体,然后如果从$i$开始存在一个 阅读全文
posted @ 2019-04-29 17:03 menhera 阅读 (24) 评论 (0) 编辑
摘要:题目分析: 我们思考正好被k个区间覆盖的情况,那么当前这个子段是不是把所有的点分成了两个部分,那么在两个部分之间相互连k条线,再对于剩下的分别连线就很好了?这个东西不难用组合数写出来。 然后我们要证明每个区间的期望长度是点数加一分之一,这个很容易,归纳法证明就行了。 代码: 阅读全文
posted @ 2019-04-27 12:07 menhera 阅读 (41) 评论 (0) 编辑