A92844.[CSP-S 2025] 员工招聘

提高+/省选-

官方

通过率:0%

时间限制:1.00s

内存限制:1024MB

题目描述

小 Z 和小 H 想要合伙开一家公司,共有 nn 人前来应聘,编号为 1n1 \sim n。小 Z 和小 H 希望录用至少 mm 人。

小 H 是面试官,将在接下来 nn 天每天面试一个人。小 Z 负责决定应聘人前来面试的顺序。具体地,小 Z 可以选择一个 1n1 \sim n 的排列 pp,然后在第 ii (1in1 \leq i \leq n) 天通知编号为 pip_i 的人前来面试。

小 H 准备了 nn 套难度不一的面试题。由于 nn 个前来应聘的人水平大致相同,因此对于同一套题,所有人的作答结果是一致的。具体地,第 ii (1in1 \leq i \leq n) 天的面试题的难度为 si{0,1}s_i \in \{0, 1\},其中 si=0s_i = 0 表示这套题的难度较高,没有人能够做出;si=1s_i = 1 表示这套题的难度较低,所有人均能做出。小 H 会根据面试者的作答结果决定是否录用,即如果面试者没有做出面试题,则会拒绝,否则会录用。

然而,每个人的耐心都有一定的上限,如果在他面试之前未录用的人数过多,则他会直接放弃参加面试。具体地,编号为 ii (1in1 \leq i \leq n) 的人的耐心上限可以用非负整数 cic_i 描述,若在他之前已经有不少于 cic_i 人被拒绝或放弃参加面试,则他也将放弃参加面试。

小 Z 想知道一共有多少种面试的顺序 pp 能够让他们录用至少 mm 人。你需要帮助小 Z 求出,能够录用至少 mm 人的排列 pp 的数量。由于答案可能较大,你只需要求出答案对 998,244,353998,244,353 取模后的结果。

输入格式

输入的第一行包含两个正整数 n,mn, m,分别表示前来应聘的人数和希望录用的人数。

输入的第二行包含一个长度为 nn 的字符串 s1,,sns_1, \ldots, s_n,表示每一天的面试题的难度。

输入的第三行包含 nn 个非负整数 c1,c2,,cnc_1, c_2, \ldots, c_n,表示每个人的耐心上限。

输出格式

输出一行一个非负整数,表示能够录用至少 mm 人的排列 pp 的数量对 998,244,353998,244,353 取模后的结果。

输入输出样例

  • 输入#1

    3 2
    101
    1 1 2

    输出#1

    2
  • 输入#2

    10 5
    1101111011
    6 0 4 2 1 2 5 4 3 3

    输出#2

    2204128
  • 输入#3

    
    见选手目录下的 `employ/employ3.in` 与 `employ/employ3.ans`。该样例满足测试点 6 ~ 8 的约束条件。
    

    输出#3

    
    见选手目录下的 `employ/employ3.in` 与 `employ/employ3.ans`。该样例满足测试点 6 ~ 8 的约束条件。
    
  • 输入#4

    
    见选手目录下的 `employ/employ4.in` 与 `employ/employ4.ans`。该样例满足测试点 12 ~ 14 的约束条件。

    输出#4

    
    见选手目录下的 `employ/employ4.in` 与 `employ/employ4.ans`。该样例满足测试点 12 ~ 14 的约束条件。
  • 输入#5

    
    见选手目录下的 `employ/employ5.in` 与 `employ/employ5.ans`。该样例满足测试点 18 ~ 21 的约束条件。
    

    输出#5

    
    见选手目录下的 `employ/employ5.in` 与 `employ/employ5.ans`。该样例满足测试点 18 ~ 21 的约束条件。
    

说明/提示

样例 1 解释

共有以下 2 种面试的顺序 pp 能够让小 Z 和小 H 录用至少 2 人:

  1. p=[1,2,3]p = [1, 2, 3],依次录用编号为 1 的人和编号为 3 的人;
  2. p=[2,1,3]p = [2, 1, 3],依次录用编号为 2 的人和编号为 3 的人。

数据范围

对于所有测试数据,保证:

  • 1mn5001 \leq m \leq n \leq 500
  • 对于所有 1in1 \leq i \leq n,均有 si{0,1}s_i \in \{0, 1\}
  • 对于所有 1in1 \leq i \leq n,均有 0cin0 \leq c_i \leq n
测试点编号 nn \leq mm 特殊性质
1, 2 1010 n\leq n
3 ~ 5 1818 n\leq n
6 ~ 8 10210^2 n\leq n A
9 ~ 11 10210^2 n\leq n
12 ~ 14 500500 =1= 1
15 500500 =n= n
16, 17 500500 n\leq n A
18 ~ 21 500500 n\leq n B
22 ~ 25 500500 n\leq n

特殊性质 A:对于所有 1in1 \leq i \leq n,均有 si=1s_i = 1

特殊性质 B:在 s1,s2,,sns_1, s_2, \ldots, s_n 中最多只有 18 个取值为 1,即 i=1nsi18\sum_{i=1}^n s_i \leq 18

首页