随笔分类 - 思维题
摘要:题目 点这里看题目。 分析 奇奇妙妙的题目。 直接修改树上的路径会影响到很多条边,并不方便处理。我们需要压缩受影响信息的数量。 由于对点的处理更加灵活,因而我们考虑将边权转为点权。 考虑修改树上路径经常与树上差分挂钩,我们可以猜想第一种方法:给点赋权为它到根上所有边的权的异或和。 但是没有什么用,因
阅读全文
摘要:题目 点这里看题目。 分析 原来数据的奇怪结尾就可以拿来判断特征呀 40pts ~ 55pts 太简单就不说了。 75pts 考虑完全二叉树怎么做。 这里需要注意一点,就是:\(n=262143=2^{18}-1\) ,也就是说,数据实际上就是一棵满二叉树。 由于满二叉树具有极强的对称性,我们不难想
阅读全文
摘要:题目 点这里看题目。 分析 首先可以娴熟地推倒一发式子: \[ \begin{split}&f_k(n)&\overset{\mathrm{def}}{=}f(k,n)\\\Rightarrow &f_k(n)&=\sum_{i=1}^{n-1}f_k(i)+n^k\\\end{split} \]
阅读全文
摘要:题目 比赛界面。 T1 数据范围明示直接$O(n^2)$计算,问题就在如何快速计算。 树上路径统计通常会用到差分方法。这里有两棵树,因此我们可以做“差分套差分”,在 A 树上对 B 的差分信息进行差分。在修改的时候,我们就会在 A 上 4 个位置进行修改,每次修改会涉及 B 上 4 个位置的差分修改
阅读全文
摘要:题目 点这里看题目。 分析 设前缀和$s_r=\sum_^r [S_i='1']$ 考虑满足要求的子串$(l,r]$的要求: \(\exists k\in N_+, r-l=k(s_r-s_l)\) 单独计算并不好算,考虑一个分块的优化。设置阈值$T$。 对于$1\le k\le T$的$k$,对要
阅读全文
摘要:题目 点这里看题目。 分析 最妙的地方在于,这道题其实是用一种数据结构模拟另一种数据结构! 我们需要维护深度和树的结构,以下对于每个操作进行分别讨论。 插入一个新节点 可以发现,这个新节点一定会成为自己的前驱或者后继中深度较大者的儿子。 然后可以更新深度和树的结构。 单旋最小值 发现树会有如下的变化
阅读全文
摘要:题目 点这里看题目。 分析 分类讨论。 \(gcd(10,p)=1\) 此时,设$s(i)\(为\)[i,n]\(这个子串对应的数字,那么就可以得到,任何一个子串\)[i,j]$即为: \((s(i)-s(j+1))\times 10^{-(i-j)}\) 对于一个$\bmod p$为 0 的子串,
阅读全文
摘要:题目 点这里看题目。 分析 由于这个问题与子串相关,那么我们就先把后缀自动机给建出来。 题目条件非常特殊——“出现至少两次”。而 fail 树上一个状态的祖先状态,根据定义,至少会在当前状态中出现一次。我们便可以知道,答案所对应的状态在 fail 树上一定呈祖孙关系。 我们可以用倍增法,求出状态 \
阅读全文