让我想起了一道十分有趣的 ZJOI 题呢~
问题相当于是给定一棵线段树,其中某些结点有标记,统计不用标记的结点能拼出的区间数。
(并不能把一个结点拆成左右儿子用)
这种东西既然是在线段树上做,那么显然要维护可以拼出的前后缀数。
那么一个结点的贡献应该为左儿子的后缀数乘右儿子的前缀数。
然后注意去掉或补上一些这个方式会忽略的情况。
还是比较简单的题?
动态开点,如果某个点是空的那么贡献直接为 (len+12),len 是长度。
注意空点也要记可以拼出的前后缀数(都等于 len)。
代码:
1 |
|