摘要:
"题目" 终于去写$LCT$了 "这个大爷讲的挺好的" 板子 cpp include include include include define maxn 300005 define re register define LL long long define max(a,b) ((a) (b)? 阅读全文
摘要:
还有这么板子的题? 和你谷上后缀自动机的板子基本一样,区别就是之后这个位置是$0$才计入贡献 代码 cpp include include define maxn 400005 define re register define LL long long define max(a,b) ((a) ( 阅读全文
摘要:
厚颜无耻的发一篇可能是全网最劣解法 我们发现要求给定的串所有不同的循环同构出现的次数,可以直接暴力啊 因为一个长度为$n$的串,不同的循环同构次数显然是不会超过$n$的,所以我们可以直接对每一个循环通过分别求一下其出现次数 求其出现次数当然可以交给$SAM$来搞了 于是我们把所有的串都插入$SAM$ 阅读全文
摘要:
"题目" 直接线段树合并就好了 之后在线段树上二分贪心选取金额较少的 如果是左偏树的话就开一个大根堆,根和子树顺次合并,合并之后堆内所有元素总和如果大于$m$就删除堆顶,由于每个元素只会被删除一次,所以复杂度非常科学 代码 cpp include include include include de 阅读全文
摘要:
"题目" 多了区间翻转,之后没了 区间翻转的标记记得在$kth$的时候下传 代码 cpp include include include include define maxn 2100005 define re register int n,m,root,len,pos=1; char val[m 阅读全文
摘要:
"题目" 发现这样一句话就会导致$T$ 并不是很知道为什么,可能这是某种未定义行为在不同编译器下会有不同后果? 至于这道题就很简单了,几个有关光标位置的操作就用一个变量模拟就好了 插入的话把这个位置转出来构造一棵完美$splay$插入就好了 删除直接转出区间断开的父亲的链接 输出直接转出区间中序遍历 阅读全文