2017暑假七林集训day23

来源:互联网 发布:php应用开发是干嘛的 编辑:程序博客网 时间:2024/05/16 15:49

早上

早上是zhuchaoyu出题的考试。t1拿着没思路,先放下。t2当时一看,欸这不是kmp傻逼题吗(注意这是一个flag)!我愉快的在文件前的注释里面打上了富强民主文明和谐等二十四字经,然后在下面打上了kmp傻逼题的注释(滑稽)。然而我后来发现遇到abca与a?a这种样例的时候会炸掉。弃题切t3。t3差分一下然后做一些处理就是一道kmp傻逼题(这回是真的)(当然因为环形的原因需要做一些神奇的处理)。
评测。t1没写当然是0了。t2虽然写了个反着搜的代码但是被suntask卡了,10分。t3让我很吃惊的是我被卡T了一个点,更吃惊的是暴力居然和正解分数一样(这数据真的是要多水有多水啊)!

下午

下午最开始讲题。t1是一道可持久化线段树?没想到啊。t2n方过20000?bitset乱搞大法好。
今天下午的主要内容是后缀数组。一般使用倍增算法便可符合要求。每次对2^i长度的子串桶排序,在倍增过程中合并。复杂O(nlogn)。为了方便用后缀数组解决问题,还需要求出height数组。height[i]表示sa[i]和sa[i-1]的最长公共前缀(LCP)长度。对于位置相邻的两个后缀i,i+1,height[rank[i]]-1≤height[rank[i+1]],那么匹配i+1时只需要从height[i]开始枚举即可。
原创粉丝点击