P14926 [北大集训 2025] 字符串问题
题目描述
给定长度为 $n$ 的字符串 $s$ 和系数序列 $f_1, f_2, \dots, f_n$。
定义一个正整数 $d$ 是一个子串 $s[l,r]$ ($1 \le l \le r \le n$) 的**周期**,当且仅当 $d \le r-l+1$ 且对于任意 $l \le i \le r-d$,均有 $s_i = s_{i+d}$。
定义一个正整数 $d$ 是一个子串 $s[l,r]$ ($1 \le l \le r \le n$) 的**整周期**,当且仅当 $d$ 是 $s[l \dots r]$ 的周期,且 $d$ 整除 $r-l+1$。
对于 $1 \le l \le r \le n$,定义子串 $s[l,r]$ 的**价值**为 $w(l,r) = f_{(r-l+1)/d}$,其中 $d$ 是子串 $s[l,r]$ 的**最小整周期**。
对于所有 $1 \le i \le n$,求所有以 $i$ 为右端点的子串的价值之和,即 $\sum_{j=1}^{i} w(j,i)$。由于答案可能较大,你只需要求出答案对 $998,244,353$ 取模后的结果。
输入格式
从标准输入读入数据。
输入的第一行包含一个正整数 $n$,表示字符串 $s$ 的长度。
输入的第二行包含一个长度为 $n$ 的字符串 $s$。
输入的第三行包含 $n$ 个非负整数 $f_1, f_2, \dots, f_n$,表示给定的系数序列。
输出格式
输出到标准输出。
输出一行 $n$ 个非负整数,其中第 $i$ ($1 \le i \le n$) 个非负整数表示所有以 $i$ 为右端点的子串的价值之和对 $998,244,353$ 取模后的结果。
说明/提示
### 【样例 1 解释】
以下为所有价值非 $0$ 的子串:
- 子串 $s[1,4] = \text{baba}$ 的最小整周期为 $2$,价值为 $1$。
- 子串 $s[4,5] = \text{aa}$ 的最小整周期为 $1$,价值为 $1$。
- 子串 $s[4,6] = \text{aaa}$ 的最小整周期为 $1$,价值为 $1$。
- 子串 $s[5,6] = \text{aa}$ 的最小整周期为 $1$,价值为 $1$。
- 子串 $s[7,8] = \text{bb}$ 的最小整周期为 $1$,价值为 $1$。
### 【子任务】
对于所有测试数据,均有:
- $1 \le n \le 10^6$;
- 对于所有 $1 \le i \le n$,$s_i$ 均为小写英文字母;
- 对于所有 $1 \le i \le n$,均有 $0 \le f_i \le 10^9$。
| 子任务编号 | 分值 | $n \le$ | 特殊性质 |
|:-:|:-:|:-:|:-:|
| 1 | 10 | $100$ | 无 |
| 2 | 15 | $5 \times 10^3$ | 无 |
| 3 | 25 | $2 \times 10^5$ | A |
| 4 | 10 | $2 \times 10^5$ | B |
| 5 | 20 | $10^6$ | 无 |
| 6 | 20 | $10^6$ | 无 |
特殊性质 A:对于所有 $1 \le i \le n$,均有 $f_i = [2 \mid i]$。
特殊性质 B:存在正整数 $k$ 满足对于所有 $1 \le i \le n$,均有 $f_i = [k \mid i]$。