【算法心得】下标会变不好用线段树,那就通过线段树反向求下标

https://codeforces.com/contest/899/problem/F

区间修改,看起来像线段树,但是吧,线段树依靠下标建树,这个下标老变

1e5,只能O(nlogn)了呀,我想过用链表维护这个string,这样删了之后下标是真下标,然后把同样的字符链接起来,删的时候好找,但是这样还是没办法判断下标,要是判断下标是不是在 [l,r],就得一格一格走链表,那一趟就O(n)了

搜了搜人家的题解,说确实是线段树,也是哈,这个特征太明显了,关键是看怎么从 l 找到 l_origin,从 r 找到 r_origin

如果线段树里存的是某区间某元素的数量(每一个节点是一个数组),那么让这个数组tree[x]中空出tree[x][0]来作为tree[x][1]~tree[x][N]的和,这样找到区间字符数量为l_origin是可行的,r_origin同理

你可能感兴趣的:(算法,算法)