题目名称 | 4156. 因你而在的故事 |
---|---|
输入输出 | elysia.in/out |
难度等级 | ★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 512 MiB |
测试数据 | 25 |
题目来源 |
|
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:0, 提交:13, 通过率:0% | ||||
|
24 | 1.913 s | 3.79 MiB | C++ |
|
24 | 26.290 s | 3.82 MiB | C++ |
|
24 | 38.066 s | 3.87 MiB | C++ |
|
24 | 38.067 s | 3.88 MiB | C++ |
|
24 | 38.076 s | 3.87 MiB | C++ |
|
24 | 38.123 s | 3.81 MiB | C++ |
|
24 | 38.129 s | 4.11 MiB | C++ |
|
16 | 26.225 s | 1.67 MiB | C++ |
|
16 | 26.450 s | 3.92 MiB | C++ |
|
8 | 6.426 s | 45.89 MiB | C++ |
关于 因你而在的故事 的近10条评论(全部评论) | ||||
---|---|---|---|---|
夸脏哦
2025-06-10 17:51
1楼
|
往世乐土的数据共有 $n$ 个节点,从左到右排布成一行,编号分别为 $1 \sim n$,每个节点都存储了一个字符 $c_i$. 由于某种原因,$c_i$ 只可能是 $f$, $q$, $h$ 中的一个。
Elysia 会进行 $q$ 次询问,每次选定一个区间 $[l, r]$ 释放魔法。
魔法会使序列发生一些变化,具体地,会不断将区间中最靠左的子串 $fqh$ 改为 $hqf$,直到不能再修改。
Elysia 想知道操作后区间中子串 $hqh$ 的个数。
如果你回答不上来,往世乐土就会被侵蚀之律者入侵。为了可爱的粉色妖精小姐,还是认真想想这个问题吧……
注意每次询问之间独立。
第一行一个正整数 $n$,表示数据节点数。
第二行 $n$ 个字符 $c_1, c_2, \cdots, c_n$,分别表示每个节点存储的字符。
第三行一个正整数 $q$,表示询问的个数。
以下 $q$ 行,每行两个正整数 $l, r$,意义见【题目描述】。
输出共 $q$ 行。
对于 Elysia 的每次询问,输出一行一个整数,表示操作后区间中子串 $hqh$ 的个数。
8 fqhqhfqh 1 1 7
1
选择区间 $[1, 7]$ 使用魔法,将会对 $s'=c_1c_2\cdots c_7 = fqhqhfq$ 进行操作。
第一次操作会将 $s'$ 变为 $hqfqhfq$;
第二次操作会将 $s'$ 变为 $hqhqffq$.
最后 $s'$ 中只有一个子串满足题目条件。
22 fqhqhqfhqhfqhqhfqhfqhf 6 1 1 3 5 1 22 2 17 14 15 4 14
0 1 3 3 0 1
对于所有测试数据,$1 \le n, q \le 5 \times 10^5$,$1 \le l, r \le n$,$c_i \in \{f, q, h\}$.
特殊性质:保证字符串随机生成。
校际联合邀请赛第6场入门组T4