2024-8-18 算法学习

TTM - To the moon
题意:给定区间,有区间加减操作,区间求和操作,回退版本操作
主席树的lazytag不方便下传,因为有不同版本的共用节点,pushdown之后会导致前一个版本的值也改变了
考虑持久化标记,坑比较多
修改的时候直接把这个区间的值算出来,而不是递归子节点之后pushup上来因为这个节点的tag没有pushdown子节点没有把父节点的tag算进去
查询的时候如果查询到一个整的区间 就直接传上去 否则要把左右子节点的答案加上tag×区间宽度
P5357 【模板】AC 自动机
实际上就是很灵活的trie树,重点在于fail指针的连接和一些虚节点的优化
利用bfs,如果这个26个子节点,是实的,就它的fail指针指向它父亲的fail指针的儿子 不然就把这个trie树的指针连向它父节点的fail指针的这个点 因为是bfs所以浅节点的trie指针已经定好了,如果所有节点都没有这个字符,就回到主节点了
在统计个数的时候,不要一个一个fail指针这样加,因为一个点加上了1,后面的所有fail指向的都要加一
要最后通过拓扑排序的方式一起统计

posted @ 2024-08-26 01:23  Tchai2005  阅读(8)  评论(0)    收藏  举报