C. 第3题-同源游走计数

第3题-同源游走计数

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目内容

在一个由 nn 个房间排成一排的走廊中,每个房间的门口挂着一个由小写字母制成的标牌。你计划从某个房间出发,按照从左到右的顺序依次参观若干个房间,并在某个房间结束参观——整个行程所经过的房间序列(包括起点和终点)称为一条“游走”。如果一条游走的起点房间与终点房间的标牌字母相同,则称其为“同源游走”。注意:你可以在任意房间停下,也可以只参观一个房间(此时起点与终点是同一房间,字母自然相同,也算作一条同源游走)。

现在给定这排房间的标牌序列,请问总共有多少条不同的同源游走?答案可能很大,请将其对 998244353998244353 取模后输出。

在这里,“游走”本质上是原序列的一个非空子序列,且必须保持原顺序。子序列通过选取原序列中的若干位置(至少一个)得到,首尾位置的字符相同。

约束:

  • 字符串仅由小写字母组成。
  • 字符串长度不超过 10510^5

输入描述

输入仅有一行,包含一个由小写字母组成的字符串 ss,长度为 nn,满足 1n1051 \le n \le 10^5

输出描述

输出一个整数,表示所有同源游走的数量对 998244353998244353 取模的结果。

样例1

输入

a

输出

1

说明

字符串长度为 1,只有一条游走,即参观该房间。起始与结束字母均为 'a',是同源游走。故答案为 1

样例2

输入

abc

输出

3

说明

字符串由三个不同字母组成,没有任何两个房间字母相同。因此只有每个房间单独作为游走,共 3 条。分别为 'a''b''c'

样例3

输入

abab

输出

8

说明

字符串 s = "abab",字母 'a' 出现在位置 13;字母 'b' 出现在位置 24。 对于 'a':选择起点和终点均为位置 11 条);均为位置 31 条);起点位置 1 终点位置 3,中间有位置 2 可选可不选,有 21=22^{1} = 2 条游走("aa""aba")。'a' 共贡献 1+1+2=41+1+2=4 条。 同理 'b':起点终点均为位置 21 条);均为位置 41 条);起点 2 终点 4,中间位置 3 可选可不选,有 21=22^{1}=2 条。'b' 共贡献 4 条。 总计 4+4=84+4=8 条。

样例4

输入

aaaa

输出

15

说明

所有房间字母相同,任何非空子序列首尾字母均为 'a'。总共有 241=152^4 - 1 = 15 条非空子序列,因此答案为 15。也可由求和公式 1ij42ji1\sum_{1\le i\le j\le 4} 2^{j-i-1} 计算得到 15

秋招模拟赛第39场|2023.09.02-淘天-研发

Not Attended
Status
Done
Rule
IOI
Problem
3
Start at
2023-9-6 19:00
End at
2023-9-6 20:12
Duration
1.2 hour(s)
Host
Partic.
25