#CSP1208. 此路不通 (stop)

    ID: 4575 Type: Default File IO: stop 1000ms 256MiB Tried: 19 Accepted: 3 Difficulty: 9 Uploaded By: Tags>CSP-S复赛模拟国庆集训

此路不通 (stop)

题目描述

小 Y 正在玩一个连线游戏,名叫“此路不通”。

游戏中有 nn 个入口和 nn 个出口,编号都是 1,2,,n1,2,\dots,n

现在小 Y 需要将每个入口连向一个出口,并且出口必须被恰好一个入口连接,并且连接的入口编号和出口编号不能相同

然而出口的点有一些是安全的,剩下的都是陷阱。只有安全的出口才可以离开。

我们称一个连法是符合“此路不通”的,当且仅当不管从任何入口 ii 出发,都不会从编号大于 ii 的出口离开

现在给定哪些出口是陷阱,请你判断有多少种连法,是“此路不通”的。两个连法不同当且仅当某个入口连接的出口在两个方案中不同。答案对 998244353998244353 取模。

输入格式

stop.in 文件读入数据。

第一行包含一个整数 TT,表示数据组数。

对于每个测试数据,输入一行一个 0101 串,长度为 nn,第 ii 个字符为 0 代表编号 ii 的出口是安全的,否则字符为 1 代表编号 ii 的出口是有陷阱的。

输出格式

输出到 stop.out 文件。

对于每个测试数据,输出一行一个整数,代表答案,对 998244353998244353 取模。

样例 1

4
0101
1010010010001010
11111
10100100011000010010101001001001
3
0
44
393298077

第一个样例可能的连接方法:

  1. 入口 1 - 出口 2, 入口 2 - 出口 1, 入口 3 - 出口4, 入口 4 - 出口 3
  2. 入口 1 - 出口 4, 入口 2 - 出口 1, 入口 3 - 出口2, 入口 4 - 出口 3
  3. 入口 1 - 出口 2, 入口 2 - 出口 4, 入口 3 - 出口1, 入口 4 - 出口 3

样例 2

点击链接 ex_stop2.inex_stop2.out 下载大样例 2 的输入数据和输出数据。

数据范围

对于每个测试点, 保证 1t1000,1n50001\le t\le 1000, 1\le \sum n\le 5000

子任务 分数 附加约束条件
11 1515 输入的字符串全部由 0 组成或全部由 1 组成
22 2020 n10,n50n\le 10, \sum n\le 50
33 2525 n20,n100n\le 20, \sum n\le 100
44 4040 无特殊限制