#ABC304F. 排班表

排班表

排班表

题目描述

高桥和青木将在接下来的 NN 天打工。

高桥的排班用字符串 SS 给出,其中 SS 的第 ii 个字符为 # 表示他在第 ii 天上班,为 . 表示他在第 ii 天休息。

基于此,青木按如下方式制定了自己的排班表。

首先,取一个 NN 的正因数 MM,且 MNM \neq N

接下来,决定前 MM 天的出勤情况。

最后,对于 i=1,2,,NMi = 1, 2, \ldots, N - M,按这个顺序决定第 (M+i)(M + i) 天的出勤情况,使其与第 ii 天的出勤情况相同。

注意,不同的 MM 值可能得到相同的最终排班表。

求在 NN 天中每一天至少高桥和青木中有一个人上班时,青木可能的排班表数量,对 998244353998244353 取模。

输入格式

输入按以下格式从标准输入给出:

N
S

输出格式

输出答案。

样例

6
##.#.#
3

高桥在第 11224466 天上班。

TT 为表示青木排班的字符串,其中 TT 的第 ii 个字符为 # 表示他在第 ii 天上班,为 . 表示他在第 ii 天休息。

TT 可能的字符串有三种:######、#.#.#.、.##.##。

第一个排班表可以通过选择 M=1M = 12233 实现,第二个可以通过选择 M=2M = 2 实现,第三个可以通过选择 M=3M = 3 实现。

7
...####
1
12
####.####.##
19

数据范围

  • NN2210510^5 之间(含端点)的整数。
  • SS 是由 # 和 . 组成的长为 NN 的字符串。
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
2955
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签