模板错误总结
来源:互联网 发布:阿里云华南地区是哪里 编辑:程序博客网 时间:2024/06/04 18:38
一、LCT
splay的时候要先对x一次pushdown,不然的话x的左右儿子指针有可能是反的,rotate的时候x的父亲的另一个儿子就可能赋值成x的错误的一个儿子,导致树的关系被破坏甚至成环,因此死循环超时。
总结LCT或者伸展树中需要更新信息的地方:
rotate最后要上传y。
splay最开始下放x,循环中下放x的祖父和x的父亲,最后上传x。
找前驱、后继、第k大的时候走到一个点pushdown一次。
access合并子树的时候要上传。
link不用传标记。cut需要上传一次。
LCT只维护连通信息的时候可省去所以上传,但下放rev标记不能省。
二、后缀数组
二分的时候check函数有点问题。height[i]表示的是排名为i和i-1的lcp,因此如果height[i]>=x实际上是suffix(sa[i])和suffix(sa[i-1])可以匹配x位以上,计算的时候要把sa[i-1]纳入进来。只考虑sa[i]的话肯定是有问题的,假如说只有一个height[i]>=x,但是本来又是合法的,这样就会少考虑了一个后缀,相当于只考虑了一个后缀,无论如何是无法匹配的。
以后要注意height[i]实际是两个最接近的后缀的lcp。还有要注意为了方便实际上是把最后一个空字符排到第一的,注意循环初始条件。
三、treap
原题第一次做的时候是用splay来分类维护序列过的,300+ms挺快的,印象中当时调了很久。考试的时候难得再写一遍了,就来了个线段树套权值treap,跑了1s多点,比理论耗时高,一查原因,发现是随机函数生成到第十几个数之后每个随机数都一样了,以后还是用系统的rand()吧。。
- 模板错误总结
- 模板总结
- 模板总结
- 模板函数 链接错误
- 模板操作错误提示
- thinkphp 模板文件错误
- Nvelocity模板错误
- 模板类错误程序
- C++模板编译错误
- 错误总结
- 错误总结
- 错误总结
- 错误总结
- 错误总结
- 错误总结
- 错误总结
- 错误总结
- 错误总结
- java 内部类 和 匿名内部类
- lingo求解最短路和最大流问题
- spring04 数据库操作 spring+jdbc/hibernate 及其声明式事务处理
- IE已限制此网页运行可以访问计算机的脚本或ActiveX控件,如何去除这个
- SAP CO TCODE
- 模板错误总结
- 长虹42Q1N电视机和小米盒子1G增强版无线连接测试
- [leetcode] 80. Remove Duplicates from Sorted Array II 解题报告
- Fast-RCNN解析:训练阶段代码导读
- 学习CNN的比较好的网站
- java中的包
- C++表示数组长度
- UICollectionViewCell复用
- bash shell脚本安装tcmalloc,linunwind,libstdc++ so库