06 2021 档案

摘要:鸽了好久的题。 考虑先拍扁到一个序列上。 那么就是询问有多少个区间满足$max - min = r - l$ 考虑无法直接统计。 我们考虑对每个$r$来统计。 在$r$向右扩展的同时要维护的值$max,min,l,r$ 考虑到$r - l \leq max - min$ 那么如果我们不考虑常量$l$ 阅读全文
posted @ 2021-06-28 12:10 fhq_treap 阅读(60) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2021-06-26 16:19 fhq_treap 阅读(4) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2021-06-20 17:04 fhq_treap 阅读(0) 评论(0) 推荐(0)
摘要:在补NOIonline 先随手做一下这个T2的弱化版。 感觉这个就是T2的trick $tire$树认知不够,数位思想差啊。 考虑用$tire$树维护数集,然后高位往低位处理$l$,如果$l_i$为$1$,则和$p_i$相同一侧子树可以全部加入答案,再走和$p_i$不同一侧递归下去,若$l_i$为0 阅读全文
posted @ 2021-06-17 21:01 fhq_treap 阅读(154) 评论(0) 推荐(0)
摘要:思路不说了。 想起来自己打比赛的时候,没睡好。随便写了个$HASH$,模数开小一半分都没有。 然后学了$SAM$,发现这个判重不就是个水题。 $SAM$是字串tire的集合体。 随便$dfs$一下就好,然后复杂度是$O(n^2)$即遍历所有子串 [NOI Online 2021 提高组] 积木小赛 阅读全文
posted @ 2021-06-17 20:20 fhq_treap 阅读(93) 评论(0) 推荐(0)
摘要:又想假了。 刚开始以为是个网络流啥的。说起来这个题网络流到底能不能做,感觉很可做的样子。 \(2-sat\)。 考虑对于每个非$x$点均有只有两个选择。 而$x$点的数量是非常少的,我们可以直接枚举他的状态。 每个$x$点只要枚举$AB$和$BC$的状态就好了。 代码鸽了。 阅读全文
posted @ 2021-06-17 11:29 fhq_treap 阅读(66) 评论(0) 推荐(0)
摘要:不是很会做。 大概是以前没有见过这种trick的原因。 自己想到了线段树维护出现点数,但是不会统计答案。 先分析一些东西: 首先因为只有$m$个区间要被选,且答案贡献为$max - min$,可以考虑尺取。 感觉知道这个核心$trick$就能做了。 从小到大加入,线段树随便维护一下。 [NOI201 阅读全文
posted @ 2021-06-16 21:08 fhq_treap 阅读(72) 评论(0) 推荐(0)
摘要:最近状态差到爆炸. $AT$连掉两把分,啥时候能上黄啊。 \(A\) 考虑直接动归。 把$O(n^2)$的动归后缀和优化成$O(n)$ A #include<iostream> #include<cstdio> #define ll long long #define N 100005 #defin 阅读全文
posted @ 2021-06-14 21:48 fhq_treap 阅读(149) 评论(2) 推荐(0)
摘要:巨大缝合题(逃 先考虑$k$小操作啊,$SAM$除去$link$后,这个东西就类似于一颗$tire$。 就在$tire$上跑就好了。 不过要预处理出每个等价类的出现次数。 这题充分揭示了后缀$tire$和$SAM$的关系,$SAM$实际上为路径压缩后的后缀$tire$树的聚合体。 [TJOI2015 阅读全文
posted @ 2021-06-10 21:57 fhq_treap 阅读(76) 评论(0) 推荐(0)
摘要:$SAM$真牛逼( 又好理解,又好敲,我爱了。(对比$SA$) 这是一个新的问题:考虑构建完$SAM$,本质不同的子串个数。 利用endpos集合树的性质,那么答案为$\sum len_u - len_$ [SDOI2016]生成魔咒 #include<cstdio> #include<map> # 阅读全文
posted @ 2021-06-10 21:43 fhq_treap 阅读(59) 评论(0) 推荐(0)
摘要:声明:这篇是给我自己看的笔记,估计会写得很乱,如果对您没有帮助,建议速换一篇学习。 —————————————————————————————————————————————————————————— 后缀自动机(suffix automaton, SAM) 是一个能解决许多字符串相关问题的有力的数 阅读全文
posted @ 2021-06-10 12:28 fhq_treap 阅读(81) 评论(0) 推荐(0)
摘要:考虑记$f_{i,j,k}$为$k$次操作后,$i,j$位置被调换的概率。 那么我们考虑枚举我们要算的答案即$(x,y)$。 那么有$\frac{n * (n + 1)}{2}$种调换顺序。 以此分类讨论: 一:不相交: 对答案不产生影响。 二:包含 因为是反转操作,考虑枚举枚举翻转移动的距离,从$ 阅读全文
posted @ 2021-06-09 11:53 fhq_treap 阅读(77) 评论(0) 推荐(0)
摘要:身败名裂了,$AK$场转掉分场。 都是水题不说了. 这篇文鸽了。 阅读全文
posted @ 2021-06-07 09:02 fhq_treap 阅读(94) 评论(0) 推荐(0)
摘要:考虑处理如下两个条件: 和为$p$的倍数 有至少一个质数 考虑正难则反的原则,至少一个质数很难算的,我们考虑求出所有满足条件一的,还有仅由合数满足条件一的个数。 设$f_{i,x}$为取了$i$个,$mod\ p = x$的方案数 那拼接一下$f_{i + j,x} = \sum_{a + b = 阅读全文
posted @ 2021-06-04 21:48 fhq_treap 阅读(56) 评论(0) 推荐(0)
摘要:考虑记录一个前缀和$s$,当$a_i < x$时这一位为$1$,否则为$0$; 记录一下$s[i]$的数量$f[i]$ 那么就有$ans_k = \sum_^{n - k}f_i * f_{i + k}$ FFT经典操作,翻转数组。 设$g[i] = f[n - i]$ 那么发现$ans_i = h 阅读全文
posted @ 2021-06-03 21:16 fhq_treap 阅读(74) 评论(0) 推荐(0)
摘要:##\(FFT\) 递归版 #include<iostream> #include<cstdio> #include<complex> #define ll long long #define comp std::complex<double> #define fft fast_fast_tle c 阅读全文
posted @ 2021-06-03 20:00 fhq_treap 阅读(41) 评论(0) 推荐(0)
摘要:说是要省选后来学多项式的,结果一直咕咕咕到现在,长文警告。 ##多项式定义: \(f(x) = \sum\limits_{k = 0}^na_kx^k\) (\(a_n != 0\)) ##卷积: 对于数组$a,b$,令: \(c_k = \sum\limits_{i + j = k}a_ib_j 阅读全文
posted @ 2021-06-02 22:03 fhq_treap 阅读(168) 评论(0) 推荐(0)
摘要:考虑先分析一下题目给的性质啊: 道路的修建会满足:每一时刻,都不存在 \((u,v)\) 使得 \((u,v)\) 之间能通过多种方式到达。 妥妥的一棵树啊。 通过每条道路都需要单位时间 这棵树的边权为$1$ 她都想选择一个她能到达的最远的小镇作为终点,并且她在行走过程中是不会走回头路的 就是找一个 阅读全文
posted @ 2021-06-02 20:45 fhq_treap 阅读(111) 评论(2) 推荐(0)
摘要:看到这个$n$这么小,一看就很可做嘛$stary\ eyes$ 考虑怎么做呢。 我们先把边解限制的时间排序,那么我们只要在能快速算出一段时间中,走了这么长时间能到达的点的集合就好了。 $n$这么小用可达性矩阵一做就行了。 同时由于可达性只有$0,1$元素,可以用$bitset$优化,(加上一个$\f 阅读全文
posted @ 2021-06-01 21:45 fhq_treap 阅读(63) 评论(0) 推荐(0)
摘要:现在只会$O(qn^3log)$的$40pts$做法,鸽了。 反正就是预处理之后,去掉一个$n$。 我预处理了,没去$n$,hhhh,成功减少了一半的常数。 阅读全文
posted @ 2021-06-01 21:33 fhq_treap 阅读(48) 评论(0) 推荐(0)