A5920 | 「ZJOI2020」字符串
时间限制3s
内存限制512MB
通过 / 提交0/0
题目描述
Bob 喜欢字符串。
Bob 觉得,重复两遍的字符串是优美的,例如,
Bob 有一个长度为 $n$ 的字符串 $T = T_1 T_2 \cdots T_n$。现在他想知道,给定 $T$ 的一个子串 $Q = T[l \dots r]$,这个子串 $Q$ 内一共包含多少种本质不同的优美的串作为子串。如果两个串相同,但是出现的位置不同,那么这两个串不是本质不同。
Bob 一共有 $q$ 组不同的询问,你需要快速计算出答案。
Bob 觉得,重复两遍的字符串是优美的,例如,
aa、sese、abcabc、baabaa、abababab 是优美的串,而 ab、aadead、sesese、abba 不是。更具体地说,如果一个字符串 $S$ 能够被写成两个相同的字符串前后拼接的形式,即存在字符串 $P$ 使得 $S = PP$,那么 $S$ 就是优美的。Bob 有一个长度为 $n$ 的字符串 $T = T_1 T_2 \cdots T_n$。现在他想知道,给定 $T$ 的一个子串 $Q = T[l \dots r]$,这个子串 $Q$ 内一共包含多少种本质不同的优美的串作为子串。如果两个串相同,但是出现的位置不同,那么这两个串不是本质不同。
Bob 一共有 $q$ 组不同的询问,你需要快速计算出答案。
输入格式
第一行输入两个整数 $n, q$。第二行输入一个只包含小写字母 $a$ 和 $b$ 的字符串 $T$。
接下来 $q$ 行,每行输入两个整数 $l, r$,表示一组询问。
接下来 $q$ 行,每行输入两个整数 $l, r$,表示一组询问。
输出格式
输出 $q$ 行,每行一个整数表示答案。
输入输出样例
输入 #1
11 5 aabaabaaaab 1 11 1 6 7 10 5 5 3 8
输出 #1
5 2 2 0 2
对于前 $10\%$ 的数据,$n\le 100$。
对于前 $20\%$ 的数据,$n\le 500$。
对于前 $40\%$ 的数据,$n\le 5000$。
对于另外 $20\%$ 的数据,保证 $T$ 中所有的优美的串的个数不超过 $10^6$,这里位置不同的串被视为不同的。
对于另外 $20\%$ 的数据,$q = 1$。
对于 $100\%$ 的数据,$1\le n, q\le 2\times 10^5, 1\le l\le r\le n$,$T$ 只包含小写字母
对于前 $20\%$ 的数据,$n\le 500$。
对于前 $40\%$ 的数据,$n\le 5000$。
对于另外 $20\%$ 的数据,保证 $T$ 中所有的优美的串的个数不超过 $10^6$,这里位置不同的串被视为不同的。
对于另外 $20\%$ 的数据,$q = 1$。
对于 $100\%$ 的数据,$1\le n, q\le 2\times 10^5, 1\le l\le r\le n$,$T$ 只包含小写字母
a 和 b。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?