随笔分类 - 后缀自动机
摘要:热身赛: 某题读假题+写假代码,搞了最难题1h未果之后跑路了 rk200+,感觉状态血差,正赛要寄(反向flag++ 正赛: 刚把基本的板子打完发现edgnb已经被过穿了(edgnb! 签到后yfz说能写M,于是写写写,写完过不了样例,似乎做法假了 换我写签到题B,很快啊就WA了,又改一个很明显的错
阅读全文
摘要:2019 NWERC(最短路+凸包、线段树二分、智慧题) D. Disposable Switches 显然最终的答案只与经过的边数和经过的最短路径长度和有关 令$dis[x][k]$表示到$x$点经过$k$条边的最短路(因为记录了边数,这个东西可以直接$n^2$预处理 完全不可能的点不容易求,考虑
阅读全文
摘要:A 签到题,显然只有当所有系数都$C=0$才能收敛,判一下即可 #include<bits/stdc++.h> #define inf 2139062143 #define ll long long #define db double #define ld long double #define u
阅读全文
摘要:T1 bzoj 2806 题目大意: 给出$n$个字符串表示模式串,$m$次询问,每次给出一个串 对于一个模式串的子串,我们可以将其称为一个好的串 对于一个给出的串,需要将这个串划分为若干段,使得这些段中好的串的总长度不少于总长的$85%$ 现在要使这个划分方案中最短的好的串的长度最大,输出这个满足
阅读全文
摘要:题目大意: 一个字符串 $m$次询问 每次询问$s[a:b]$的所有子串与$s[c:d]$的$lcp$最大值 思路: 因为有$lcp$ 考虑把串翻转转化为$lcs$ 建立后缀树,如何在树上通过$s[c:d]$查找是否存在$s[a:b]$的一个子串 可以二分答案$x$,找到树上$d$点的最远的一个祖先
阅读全文
摘要:T1 exploit 题目大意: 一棵树 每个点中有能量井,每个时刻,第$i$口井中回复$v_i$的能量;每口井有能量上限$l_i$ $Q$次询问 每次询问$t,x,k$表示在$t$时刻提取$x$的子树中与$x$距离不超过$k$的井的能量 并输出提取的能量之和 保证$t$递增 思路: 首先题目被分为
阅读全文
摘要:bzoj 2882 工艺 题目大意: 求一个数列的最小表示法 思路: 在后缀自动机上直接沿最小的边跑n步即可(学习了一波map的高端操作 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cmath> 5 #
阅读全文
摘要:学习一波后缀自动机 求字符串$S$的所有出现次数不为1的子串的出现次数乘上该子串长度的最大值 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cmath> 5 #include<algorithm> 6 #
阅读全文

浙公网安备 33010602011771号