AT_tupc2022_o.Equidistant Binary String

通过率:0%

AC君温馨提醒

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

题目描述

设 Sn,mS_{n,m} 为所有由 nn 个字符 0 和 mm 个字符 1 组成、长度为 n+mn+m 的字符串的集合。

对于 s1,s2∈Sn,ms_1, s_2 \in S_{n,m},定义 s1,s2s_1, s_2 之间的距离 d(s1,s2)d(s_1, s_2) 为:把字符串 s1s_1 变换成字符串 s2s_2 所需要的最小相邻两字符交换次数。

另外,对 s1,s2∈Sn,ms_1, s_2\in S_{n,m},定义 f(s1,s2)f(s_1,s_2):

  • 存在 d(s1,t)=d(s2,t)d(s_1,t)=d(s_2,t) 的字符串 t∈Sn,mt\in S_{n,m} 时,返回这些 tt 中字典序最小的那个;如果不存在这样的 tt,则返回 −1-1。

给定正整数 n,mn,m,以及字符串 T∈Sn,mT \in S_{n,m}。试求,有多少对字符串 (s1,s2) (s1,s2∈Sn,m)(s_1, s_2)\ (s_1, s_2\in S_{n,m}) 满足 f(s1,s2)=Tf(s_1,s_2)=T。请输出答案对 998244353998244353 取模。

输入格式

输入为一行,格式如下:

n m Tn\ m\ T

输出格式

输出一个整数,表示满足要求的 (s1,s2)(s_1, s_2) 对数,对 998244353998244353 取模。

输入输出样例

  • 输入#1

    2 2
    0101

    输出#1

    4
  • 输入#2

    4 1
    00100

    输出#2

    4
  • 输入#3

    3 3
    111000

    输出#3

    0
  • 输入#4

    6 4
    0001111000

    输出#4

    1254

说明/提示

样例解释 1

(s1,s2)=((s_1,s_2)=( 0011 ,, 0110 ),(),( 0011 ,, 1001 ),(),( 0110 ,, 0011 ),(),( 1001 , 0011 )) 满足条件。

例如,对 (s1,s2)=((s_1,s_2)=( 0011 ,, 0110 )),满足 d(s1,t)=d(s2,t)d(s_1, t)=d(s_2, t) 的 t∈S2,2t\in S_{2,2} 有 0101 和 1001,但字典序更小的是 0101,因此 $f(s_1, s_2)= $ 0101。

样例解释 2

(s1,s2)=((s_1,s_2)=( 00001 ,, 10000 ),(),( 00010 ,, 01000 ),(),( 01000 ,, 00010 ),(),( 10000 , 00001 )) 满足条件。

限制

  • 1≤n,m≤301\leq n, m\leq 30
  • n,mn,m 为整数
  • T∈Sn,mT\in S_{n,m}

由 ChatGPT 5 翻译

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

首页