CF2150G.Counting Is Fun: The Finale

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

zabutom, Dubmood - Track Tracking

⠀

给定三个正整数 xx、yy 和 kk。

同时给定一个二进制字符串 aa(∣a∣=x+y|a| = x + y)。

请计算满足下列条件的二进制字符串 bb 的个数,结果对 998 244 353998\,244\,353 取模:

  • bb 中恰好有 xx 个 00。
  • bb 中恰好有 yy 个 11。
  • 存在一个整数 ii(1≤i≤x+y−11 \leq i \leq x + y - 1),使得 min⁡(f(b1b2…bi),f(bi+1bi+2…bx+y))≥k\min \left( f(b_1 b_2 \ldots b_i), f(b_{i+1} b_{i+2} \ldots b_{x+y})\right) \geq k,其中 f(s)f(s) 表示字符串 ss 的最长不下降子序列的长度。
  • bb 的字典序大于 aa。

【注:】
∗^* 二进制字符串指只由字符 00 和 11 组成的字符串。

†^\dagger 序列 aa 是序列 bb 的子序列,当且仅当 aa 可以通过删除 bb 的若干(可以为零或全部)元素得到。例如,1011101\mathtt{1011101} 的子序列有 0\mathtt{0}、1\mathtt{1}、11111\mathtt{11111}、0111\mathtt{0111},但没有 000\mathtt{000} 和 11100\mathtt{11100}。

‡^\ddagger 如果字符串 pp 满足以下条件之一被称为字典序大于字符串 qq:

  • qq 是 pp 的前缀,且 p≠qp \ne q;
  • 在 pp 和 qq 第一个不同的位置,pp 的该字符比 qq 的该字符大。

输入格式

每组测试包含多组测试用例。第一行包含整数 tt(1≤t≤50001 \le t \le 5000),表示测试用例数量。接下来是每组测试用例的描述。

每组测试用例的第一行包含三个整数 xx、yy 和 kk(1≤x,y≤50001 \le x, y \le 5000,1≤k<x+y1 \leq k < x + y)。

每组测试用例的第二行包含一个长度为 x+yx+y 的二进制字符串 aa,仅包含字符 00 和 11。

保证所有测试用例中 xx 的和不超过 50005000,yy 的和也不超过 50005000。

输出格式

对于每组测试用例,输出一个整数,表示满足条件的二进制字符串数量,对 998 244 353998\,244\,353 取模。

输入输出样例

  • 输入#1

    6
    1 1 1
    00
    2 2 2
    1110
    2 2 1
    0101
    1 6 3
    0000000
    4 6 4
    0010110010
    10 6 7
    0010110000101100

    输出#1

    2
    0
    4
    7
    106
    203

说明/提示

对于第一个测试用例,有两个满足条件的字符串:01\mathtt{01} 和 10\mathtt{10}。

对于第三个测试用例,有四个满足条件的字符串:0110\mathtt{0110}、1001\mathtt{1001}、1010\mathtt{1010} 和 1100\mathtt{1100}。

由 ChatGPT 5 翻译

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

首页