随笔分类 - B-数据结构-SGT/BIT
摘要:题意 "洛谷" 做法 显然得将串翻转 令$up_{l,k}$为$l$至根节点路径上深度为$k$的点 $$\begin{aligned} \sum\limits_{i=l}^rlcp(s_{l,r},s_{i,r})&=\sum\limits_{k=1}^{L=r l+1}min(dep(lca(l,
阅读全文
摘要:题意 给定$n$个点的带边权树,$m$条代价路径,令两条路径$(u_1,v_1,w_1)(u_)(u_2,v_2,w_2)$,$val=\sum\limits_{(u,v)\in dis(u_1,v_1)~or~(u,v)\in dis(u_2,v_2)}val(u,v) w_1 w_2$。求$ma
阅读全文
摘要:题意 给定$n\times m$的方格,形成一个$n m $排列,问有多少个值域,使得形成一个棵树。$n\times m\le 2\times 10^5,n,m\le 1000$ 做法 形成环是单调的:$[l,r]$有环,则$[l_1,r_1]$也有环($l_1\le l,r\le r_1$) 枚举
阅读全文
摘要:题意 "codechef" 做法 结论1 :若干个区间的贡献只被两个区间限制 然后我们就只用考虑两个区间的贡献就好了,可以扫描右端点,然后用之前扫描过的与其匹配 比如现在线段为$[l,r]$,确定$l$为左端点,现在找右端点。需要$[l_1,r_1],.s.t~l\in[l_1,r_1]$,然后$r
阅读全文
摘要:题意 "计蒜客" 做法 由于查询是对$(x,l...r)$进行询问,沿$x$从小到大进行扫描线 然后对(时间,纵坐标)建二维线段树就好了 做法 官方题解说用kd tree,不知道咋做...
阅读全文
摘要:题意 "hdu" 做法 判断$...i...j...$能形成半回文串的充要条件: $i<j$ $j i\le p_i$ $j i\le p_j$ 等价于$i<j\le i+p_i,j\ge j p_j$
阅读全文
摘要:题意 区间本质不同回文串个数 做法一 考虑加入右端点$i$后用线段树维护[左端点,$i$]的答案 令$x$为当前点$i$的最长回文后缀,$y$为$x$的最长回文后缀。令$x=S[l_1,i],y=S[l_2,i]$ 显然,若$x\le 2|y|$,则左端点$\in(l_1,l_2)$中不会出现$y$
阅读全文
摘要:题意 uoj 做法 下面考虑算$ans_1$,也就是全局 将操作拍成一个序列,一个显然的贪心是放$w_i$后取出$\sum\limits_{v\in son_i}w_v$,相当于到一个点$i$时,\(A_i=+w_i-\sum\limits_{v\in son_i}w_v\),求最大前缀和 这样会发
阅读全文
摘要:题意 求区间回文串个数(位置不同算不同) 做法 $i\in [L,R]$,以$i$为中心的极长为$x$,贡献$\{i L,R i,x\}$ $i\in [L,mid]:min\{i L,x\}$,相当于$[L,mid]$与$[i x,i]$求交 $i\in (mid,R]:min\{R i,x\}$
阅读全文
摘要:题意 \(a_i,b_i\),$q$次询问$(l,r)$,求$min{\sum\limits_^r max(|a'-a_i|,|b'-b_i|)}$ 做法 $\begin\ &max(|a'-a_i|,|b'-b_i|)\ &=max(a'-a_i,a_i-a',b'-b_i,b_i-b')\ &=
阅读全文
摘要:题意 $n$个点的树,$q$次查询,每次查询给定$k$,进行若干次操作,每次操作删除树上一条深度递减的点数$\le k$的链,求最少的操作次数。$n\le 10^5$ 做法 设$num$为叶子个数,一个询问的答案是$O(num+\frac{n num}{k})$ 证明: 贪心,每次选择一个最深的未被
阅读全文
摘要:题意 $n$点$m$条边的DAG,求删除一点后最长路径的最小值。 做法 令$f_i$为以$i$结束的最长路径,$g_i$为以$i$出发的最长路径 用权值线段树维护这样一个集合: 可重 删除一个元素,若不存在这个元素则对集合没有影响 令拓扑序为$a_i$,初始将$g_i$加入集合$S$ 顺序遍历拓扑序
阅读全文
摘要:题意 给定一棵树,$m$条路径,对于每条路径,求有多少条路径包含其 做法 对于路径$A,B$,将$B$放在$A$,将$A$放在$B$,将询问放在$A$ 遍历整棵树,包含$A,B$的路径,相当于$A$子树中,标记在$B$子树中的个数,差分一下就好了
阅读全文
摘要:题意 给定一个01串,多次查询以$[l,r]$结尾的前缀,设为$pre_i$,求$max_{i,j,i\neq j}\{LCP(pre_i,pre_j)\}$,其中$LCP$为最长公共后缀 做法一 建出后缀树,一开始节点内存的东西为空 考虑从左往右枚举$r$,祖先$x$对答案的贡献就是:设$l$为$
阅读全文
摘要:题意 给定随机序列$A$,多组查询$(l_1,r_1,l_2,r_2)$:$$\sum\limits_{l=l_1}^{r_1}\sum\limits_{r=max(l,l_2)}^{r_2}(max\{A[l...r]\} min\{A[l...r]\})$$ 做法一 令$g(S,l_2,r_2)
阅读全文
摘要:题意 "cf" 做法 结论 :有操作$up~v$,设先前最大值为$u$,则$u v$这条路径将保留到最后,其他点相对顺序不变 证明: 保留到最后很显然;相对顺序不变听上去很显然,证的话就大力分类讨论,不过不是很优美 $up~v$时,将$u v$打上个新的时间戳,路径内顺序为$u\longrighta
阅读全文
摘要:题意 "ural" 做法 求出一个原根$\omega$,对于每个数$x$写成$x=\omega^{k}$的形式,$\delta(x)=\frac{p 1}{k}$ 我们不关心群具体的东西,用$\omega$表示,求阶就方便了 但在模意义下,区间乘求$gcd$,是件很困难的事 但商分一下,$b_i=a
阅读全文
摘要:题意 给定一个排列,问是否存在$\forall a,b,a\neq b$满足$2|(a+b)\(且\)\frac{a+b}{2}$在$a,b$间 做法 枚举中点$a$,即需要存在类似$a-m,a+m$分别在左右边 \(m\in [1,min(n-a,a-1)]\) 从前往后更新,也就是判断是否$a,
阅读全文
摘要:题意 "洛谷" 做法一 考虑一种贪心(先别管对不对),设当前已选择的集合为$A$,这是考虑该集合的补集,每个元素加进来后的增量为$V_i$,则挑选最大的那个加入该集合 结论1 :遵循上述贪心,$\forall i,j(ia_j$,倘若选$j$,集合中必定包含$i$ 归纳: $i,j$间没有任何元素在
阅读全文
摘要:题意 $n$个点,维护两个森林,这里$A,B$两个森林对应的点都是一样的,相当于对两个森林操作都会影响这$n$个点 开始森林里的树都是一个点,$A,B$支持合并(但树结构互不影响),$A$支持树赋$0$,$B$支持树加值 做法 $A,B$分开做,每次合并新建一个虚点,这样相当于把$n$个点拍扁了,就
阅读全文