AT_abc307_h.[ABC307Ex] Marquee

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个长度为 LL 的字符串 SS,由英文字母大写和小写字母组成,显示在宽度为 WW 的电子显示屏上。SS 会以每次向左滚动一个字符宽度的方式在显示屏上切换显示。

当 SS 的最后一个字符从左端消失的同时,SS 的第一个字符会从右端出现,整个过程以 L+W−1L+W-1 为周期重复。

例如,当 W=5W=5,S=S= ABC 时,显示屏的显示状态依次为:

  • ABC..
  • BC...
  • C....
  • ....A
  • ...AB
  • ..ABC
  • .ABC.

共 77 种状态不断循环显示。(其中 . 表示该位置没有字符显示)

更严格地说,对于每个 k=0,…,L+W−2k=0,\ldots,L+W-2,定义如下不同的显示状态:

  • 用 f(x)f(x) 表示 xx 除以 L+W−1L+W-1 的余数。对于显示屏从左到右的第 (i+1)(i+1) 个位置,如果 f(i+k)<Lf(i+k)<L,则显示 SS 的第 f(i+k)+1f(i+k)+1 个字符,否则该位置不显示任何字符。

现在给定一个长度为 WW 的字符串 PP,由英文字母大写、小写、. 和 _ 组成。
请你计算在 L+W−1L+W-1 种显示状态中,有多少种状态与 PP 匹配(忽略 _ 位置)。更严格地说,统计满足下列条件的状态数量:

  • 对于所有 i=1,…,Wi=1,\ldots,W,下列任一条件成立:
    • PP 的第 ii 个字符为 _
    • 显示屏从左到右第 ii 个位置显示的字符等于 PP 的第 ii 个字符
    • 显示屏从左到右第 ii 个位置没有字符显示,且 PP 的第 ii 个字符为 .

输入格式

输入为一行,格式如下:

LL WW SS PP

输出格式

输出一个整数,表示满足条件的状态数量。

输入输出样例

  • 输入#1

    3 5
    ABC
    ..___

    输出#1

    3
  • 输入#2

    11 15
    abracadabra
    __.._________ab

    输出#2

    2
  • 输入#3

    20 30
    abaababbbabaabababba
    __a____b_____a________________

    输出#3

    2
  • 输入#4

    1 1
    a
    _

    输出#4

    1

说明/提示

限制

  • 1≤L≤W≤3×1051 \leq L \leq W \leq 3\times 10^5
  • L,WL,W 为整数
  • SS 为仅由英文字母大写和小写组成的长度为 LL 的字符串
  • PP 为仅由英文字母大写、小写、.、_ 组成的长度为 WW 的字符串

样例解释 1

当显示屏显示为 ....A、...AB、..ABC 时,共有 33 种状态符合条件。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页