P7279 光棱碎片
题目背景
碎片在少年的世界里四处飘散。
最后被少年收集起,成为一列仿若无意义的字符。
题目描述
少年只剩一个字符串 $S$,它的长度为 $n$,下标以 $1 \dots n$ 编号;
以及一个数组 $a_{1\dots n}$。
少年写出了两个数 $L,R$ 并尝试寻找那些被光芒照耀过的碎片:
对于 $S$ 中两个出现位置不同而本质相同的子串 $(S_{l_1\dots r_1},S_{l_2\dots r_2})$,若 $L \le (a_{r_1} \oplus a_{r_2}) + (r_1 - l_1 + 1) \le R$,则这两个子串之间存在光芒。
其中 $S_{l\dots r}$ 表示 $S$ 的下标在 $[l,r]$ 内的字符顺次连接构成的子串,$\oplus$ 表示按位异或运算。
少年试图寻找,有多少对子串之间存在光芒。
子串对是无序的。具体地,$(S_{l_1\dots r_1},S_{l_2\dots r_2})$ 和 $(S_{l_2\dots r_2},S_{l_1\dots r_1})$ 视为一个子串对。
而你只需要将答案对 $998244353$ 取模之后告诉他就行了。
输入格式
无
输出格式
无
说明/提示
对于 $20\%$ 的数据,$n \le 100$;
对于 $50\%$ 的数据,$n \le 10^3$;
对于 $100\%$ 的数据,$1 \le n \le 10^5$, $0 \le a_i,L,R \le 10^5$, $L \le R$, $S$ 只包含小写字母。
**「出题人的馈赠」**
勇敢一点。相信某算法的常数。你想到的可能就是垃圾标算。