$Description$
一个区间如果满足区间内的值重排之后可以成为一个回文串,则这个区间可以回归天空
当前有$m$个区间,要求每个区间中有多少个子区间可以回归天空
打字机上只有$28$个按键,分别印有$26$个小写英文字母和$’B’$、$’P’$两个字母。这个打字机是这样工作的:
输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。
按一下印有$’B’$的按键,打字机凹槽中最后一个字母会消失。
按一下印有$’P’$的按键,打字机会在纸上打印出凹槽中现有的所有字母并换行,但凹槽中的字母不会消失。 例如,阿狸输入$aPaPBbP$,纸上被打印的字符如下:$a aa ab$我们把纸上打印出来的字符串从$1$开始顺序编号,一直到$n$。打字机有一个非常有趣的功能,在打字机中暗藏一个带数字的小键盘,在小键盘上输入两个数$(x,y)($其中$1\leqslant x,y\leqslant n)$,打字机会显示第$x$个打印的字符串在第$y$个打印的字符串中出现了多少次。
题意:Alice 想要得到一个长度为 $n$ 的序列,序列中的数都是不超过 $m$ 的正整数,而且这 $n$ 个数的和是 $p$ 的倍数。
Alice 还希望,这 $n$ 个数中,至少有一个数是质数。
Alice 想知道,有多少个序列满足她的要求。
$1\leq n \leq 10^9,1\leq m \leq 2\times 10^7,1\leq p\leq 100$。
题意:给出$n$个回文串$s_1, s_2, \cdots,s_n$求如下二元组$(i, j)$的个数$s_i + s_j$仍然是回文串
给出这么多字符串,显然就是要你建出字典树
在建完字典树后,我们手动模拟一下,发现树上兄弟的遍历先后其实是没有关系的(只所有兄弟是连着一起遍历的就行了)(即$dfs$序), 唯一不同的就是最后遍历的一个单词不用删,所以我们考虑让最长的单词最后遍历,于是考虑在最长单词的所有字母上加上标记,最后走。
1 | #include <bits/stdc++.h> |