08 2019 档案
摘要:"题目" 设$f_i$表示所有长度为$i$的区间的最大值的和,求$\bigoplus \sum_{i=1}^nf_i$ 不难发现随机数据非常好做 由于一个随机序列的前缀最大值期望只会变化$\log$次,所以完全可以从这个条件上入手 考虑维护一个合并式单调栈,每次插入一个数之后,单调栈中存在的都是当前
阅读全文
摘要:"题目" 显然可以构造一棵后缀树,将问题转化成了在这棵树上找到两个点$i,j$,使得$w_i\bigoplus w_j+ len_{\rm LCA(i,j)}$最大 于是在树上$dfs$的时候启发式合并$\rm trie$就好了,发现自己已经菜到不会写$\rm trie$了,$\rm trie$的插
阅读全文
摘要:"题目" 一个显然的暴力就是枚举$\rm X$的位置,把$\rm A$视为$1$,$\rm B$视为$ 1$,从这个位置开始求一遍前缀和,特征值即为所有前缀和大于$0$的$A$ 我们对第一个空位置做一遍这个暴力,考虑一下$\rm X$移动会对其他位置的前缀和产生什么样的影响 如果移动到的位置原来是一
阅读全文
摘要:"题目" 做UER的A题涨信心 首先我们注意到这个所谓的至少有一条正确在$x$和$y$不相等的时候非常弱,当$xy$时,只有可能是前$x$位用户有$y$个通过。也就是说这些信息都能被转化成一些用来限制前后缀和的信息。 设$pre_i$表示序列的前缀和,对于一条前$x$位用户有$y$个通过的限制,我们
阅读全文
摘要:"题目" 低智选手果然刷不动uoj 首先考虑一下构造一棵树显然是骗你玩的,按位与这个东西越做越小,挂到链的最下面显然不会劣于挂到之前的某一个点下面,所以我们只需要求一个排列使得答案最小就好了 设$A=\max(a_i)$,发现最优答案不可能要劣于反复对一个数取$\rm and$的答案,我们就有了一个
阅读全文
摘要:"题目" 仔细思考发现我会$O((n+m)\sqrt{n}\log n)$,不难发现这显然过不了 考虑一下这道题的答案是某一个点对产生的贡献,考虑强行转数点,我们将$x,y$搞成$(x,y,|a_x a_y|)$ 点对的个数高达$n^2$,但一些点对显然没有什么用,比如说$(x_1,y_1,v_1)
阅读全文
摘要:"题目" 可以考虑边分治,对于某一种颜色,我们处理出分治边左右两边所有以这个颜色为端点的路径长度,之后随便拼一拼就好了 但是这样对于每一组询问都需要边分一遍,这样做复杂度是$O(nm+n\log n)$的 还有一种更暴力的做法,就是枚举树上所有路径,这样就可以直接统计了,复杂度是$O(n^2)$的
阅读全文
摘要:"题目" 智力下降严重 显然要反演了呀 首先必须满足$x|y$,否则答案是$0$ 我们枚举这个数列的$gcd$是$d$或者$d$的倍数 于是答案就是 $$\sum_{x|d}[d|y]\mu(\frac{x}{d})g(\frac{y}{d})$$ $g(d)$表示和为$d$的正整数数列的数量,显然
阅读全文
摘要:"题目" 首先先对$s$建一个$\operatorname{SAM}$,设$w=kq$ 发现$k,q\leq 10^5$,但是$w\leq 10^5$,于是套路地根号讨论一下 如果$k\leq \sqrt{w}$,那么说明单个询问串都很短,我们完全可以暴力长度为$k$的字符串的所有子串,之后二分查询
阅读全文
摘要:"题目" 珂朵莉树板子,我觉得 "洛谷题解" 讲的就很不错 粘一下自己的板子 cpp include define re register define LL long long define ST std::set::iterator inline int ksm(int a,int b,int
阅读全文
摘要:"题目" 可能$\operatorname{fhq\ treap}$能做,但是珂朵莉树显然更好写 珂朵莉树是个很玄学的东西啊,就是直接使用$\operatorname{std::set}$维护每一段权值相等的连续段,之后暴力这些连续段就好了 在数据随机的意义下且有区间推平操作的时候,连续段的个数是期
阅读全文
摘要:"题目" 在$\operatorname{NOIP}$停办的日子发篇博客纪念一下 发现这个$c\leq \min(20,r l+1)$,显然可以把$0$到$20$的答案都存一下,线段树合并两个区间就是直接做一个卷积 考虑区间加操作,设$f_i$表示当前区间里所有长度为$i$的子序列乘积的和,我们考虑
阅读全文
摘要:"题目" 画一画就会发现一些奇诡的性质 首先如果$len$为一个$\operatorname{border}$,那么必然对于$\forall i\in [1,len]$,都会有$s_i=s_{n len+i}$ 我们大力扩展一下这个性质,发现当$len$为一个$\operatorname{borde
阅读全文
摘要:"题目" 考虑直接顺着从$1$填数填到$n$发现这是在胡扯 所以考虑一些奇诡的东西,譬如最后的答案长什么样子 显然某一种方案的贡献是一个$\prod_{i=1}^nw_i^{t_i}$状物,$t_i$表示$i$在多少个长度为$m$的区间里为最大值 而这里又是最大值,所以可以考虑从大到小填数,每次把填
阅读全文
摘要:"题目" 不是很明白为什么要叫做模板 考虑到$a_i$能对$b_j$产生贡献,当且仅当$a_i=\prod p_k^{a_k},b_j=\prod p_k^{b_k},\forall k \ a_k\leq b_k$,于是我们把每一个质数次幂看成一维,相当于对$a$数组求一个高维前缀和 于是我们枚举
阅读全文
摘要:"题目" 神题,神题 首先有一个思想就是计数转概率期望,我们发现每次复制一遍线段树最后会有$2^m$棵线段树过于自闭,于是我们把这个问题转化成一个概率问题,对于每次修改操作,我们另其只有$\frac{1}{2}$的概率发生,这样我们维护每个点是$1$的概率,最后乘上总情况数就是答案了 于是我们设$d
阅读全文
摘要:"题目" 写水题快乐一下 显然$\operatorname{get(l_1,r_1,x)}\times \operatorname{get(l_2,r_2,x)}$可以拆成 $\operatorname{pre(r_1,x)}\times \operatorname{pre(r_2,x)}+\ope
阅读全文
摘要:题目 三棵树真的能让人自闭 对于 \(T_1\) 边分治,处理出每个点到分治边的距离 \(dis_i\),同时将分治边两边的点分别染为黑/白色。 在当前分治块中的点建立在 \(T_2\) 上的虚树,处理出每个点到根的路径和 \(pre_i\)。 对于 \(T_3\),规定 \(T_3\) 上点的点权
阅读全文
摘要:"题目" 一个非常众所周知的结论,一个序列的前缀$\gcd$只会有$\log$种取值 于是考虑一下一些暴力的东西,我们枚举每个点作为左端点,二分出前缀$\gcd$变化的位置,复杂度大概是$\operatorname{O(nlog^3n)}$,好像非常垃圾的样子 我们考虑直接从后往前枚举左端点,每次往
阅读全文
摘要:题目 边分治+虚树=双倍的快乐 这是一个非常经典的使用边分治处理多棵树的问题,通常需要再结合虚树。 这个式子里有两个 \(LCA\),考虑对于前面的 \(\operatorname{depth(x)+depth(y)-depth(LCA(x,y))}\)。 这是在第一棵树上,对第一棵树使用边分治来统
阅读全文
摘要:"题目" 边分治 边分和点分相比就是找到一条重心边,考虑所有经过这条边的路径,之后断开这条边分成两个联通块,继续分治 由于每次分治重心是一条边,所以只会产生两个联通块,考虑两个联通块显然要比像点分那样考虑多个联通块容易 但是边分有一个问题,就是遇到菊花图就自闭了,复杂度变成了$O(n^2)$ 我们注
阅读全文
摘要:"题目" 过于神仙 首先有一个非常简单的暴力,就是枚举每一个点做为树根,从这个点开始扩展,直接在$\operatorname{SAM}$的$\operatorname{DAG}$上跑,一遍跑一遍统计就好了,对于一棵$sze$个节点的树复杂度显然是$O(sze^2)$ 发现这又是一个树上路径问题,我们
阅读全文
摘要:"题目" 首先如果$i$处的保镖可以监视$j$处$(j define re register define db double define min(a, b) ((a) '9') c = getchar(); while (c = '0' && c
阅读全文
摘要:"题目" 大模拟 显然这个期望次数是$\frac{(n+m)!}{\prod a_i!}$,$a_i$表示第$i$个数出现的次数,我们要最大化这个值只需要最小化$\prod a_i!$就好了 要加入$m$个范围在$[l,r]$的数,肯定不会影响在原序列里出现过的且不属于$[l,r]$的数的出现次数,
阅读全文
摘要:"题目" 思博贪心题写了一个半小时没救了,我也没看出这是一个$spfa$来啊 设$dp_i$表示彻底干掉第$i$只怪物的最小花费,一个非常显然的事情,就是对于$k_i$值最小的怪物满足$dp_i=k_i$ 非常好理解,反正到最后都要干掉这个怪物,何必再把它干成别的怪物 于是我们按照$k_i$的值先排
阅读全文
摘要:"题目" 首先$G,L$肯定会满足$G|L$,否则直接全部输出$0$ 之后我们考虑一下能用到的质因数最多只有$8$个 同时我们能选择的数$x$肯定是$L$的约数,还得是$G$的倍数,还不能超过$N$,感性理解一下这样的$x$显然不多,我们直接$dfs$出来 对于每一个数我们把它压成一个$2\time
阅读全文
摘要:"题目" 显然每一条边出现在生成树中的方案数是相等的 根据矩阵树定理,$n$个节点的完全图生成树个数是$n^{n 2}$种,完全图共有$\frac{n(n 1)}{2}$条边,一棵生成树共$n 1$条边 于是对于任意一条边,在所有生成树中的总出现次数是 $$\frac{n^{n 2}(n 1)}{\
阅读全文