CF2048H.Kevin and Strange Operation

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

Kevin 正在唐人街研究与二进制字符串相关的问题。当他一筹莫展时,一位陌生人走过来,向他介绍了一种奇特的操作:

  • 假设当前的二进制字符串为 tt,长度为 ∣t∣|t|。选择一个整数 1≤p≤∣t∣1 \leq p \leq |t|。对于所有 1≤i<p1 \leq i < p,同时执行操作 ti=max⁡(ti,ti+1)t_i = \max(t_i, t_{i+1}),然后删除 tpt_p。

例如,假设当前二进制字符串为 01001,选择 p=4p = 4。对 t1t_1、t2t_2 和 t3t_3 执行 ti=max⁡(ti,ti+1)t_i = \max(t_i, t_{i+1}),字符串变为 11001,然后删除 t4t_4,得到 1101。

Kevin 觉得这种奇怪的操作很有趣。因此,他想问你:给定一个二进制字符串 ss,通过任意次数(可以为零)这种操作,最多能得到多少个不同的非空二进制字符串?

由于答案可能非常大,你只需要输出结果对 998 244 353998\,244\,353 取模后的值。

输入格式

每组测试包含多组测试数据。第一行包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4)——表示测试用例的数量。

对于每个测试用例,只有一行,包含一个二进制字符串 ss(1≤∣s∣≤1061 \leq |s| \leq 10^6)。

保证所有测试用例中 ∣s∣|s| 的总和不超过 10610^6。

输出格式

对于每个测试用例,输出一个整数,表示可以通过任意次数操作得到的不同非空二进制字符串的数量,对 998 244 353998\,244\,353 取模。

输入输出样例

  • 输入#1

    2
    11001
    000110111001100

    输出#1

    9
    73

说明/提示

在第一个测试用例中,所有可以得到的二进制字符串为:11001、1001、1101、001、101、111、01、11 和 1。一共有 99 个。

由 ChatGPT 4.1 翻译

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

首页