#ABC215H. 卷心菜大师

卷心菜大师

卷心菜大师

题目描述

高桥君是一位卷心菜农,培育了 NN 个品牌的卷心菜,称为品牌 11 到品牌 NN。他有 AiA_i 颗品牌 ii 的卷心菜 (1iN)(1 \le i \le N)。这里,所有卷心菜都是可区分的。

他有 MM 个客户,称为公司 11 到公司 MM。公司 jj (1jM)(1 \le j \le M) 订购了 BjB_j 颗卷心菜。

不同公司接受不同品牌的卷心菜。对每一对 i,ji, j (1iN,1jM)(1 \le i \le N, 1 \le j \le M)

  • 如果 ci,j=1c_{i, j} = 1,品牌 ii 的卷心菜可以运往公司 jj
  • 如果 ci,j=0c_{i, j} = 0,品牌 ii 的卷心菜不能运往公司 jj

如果高桥君能决定卷心菜的运送方式,使得每家公司的发货量都达到 BjB_j 颗或以上,那么他就会被称作卷心菜大师。

Snuke 决定吃掉 0 颗或多颗卷心菜,使得无论高桥君如何运送卷心菜,他都无法获得卷心菜大师的称号。Snuke 不太喜欢卷心菜,所以他会选择吃下达成目标所需的最少颗数。

输出 Snuke 吃掉的卷心菜颗数,以及 Snuke 选择吃掉哪些卷心菜的方式数对 998244353998244353 取模的结果。两种选择方式视为不同,当且仅当存在一颗卷心菜在一种方式中被吃掉而在另一种方式中没有被吃掉。注意,即使是同一品牌的两颗卷心菜,也是可区分的。

输入格式

输入按以下格式从标准输入给出:

NN MM
A1A_1 A2A_2 \ldots ANA_N
B1B_1 B2B_2 \ldots BMB_M
c1,1c_{1, 1} c1,2c_{1, 2} \ldots c1,Mc_{1, M}
c2,1c_{2, 1} c2,2c_{2, 2} \ldots c2,Mc_{2, M}
\vdots
cN,1c_{N, 1} cN,2c_{N, 2} \ldots cN,Mc_{N, M}

输出格式

按顺序输出 Snuke 吃掉的卷心菜颗数 XX 和选择方式数 YY(对 998244353998244353 取模),中间用空格隔开。

XX YY

样例

3 2
2 2 5
3 4
1 0
1 1
0 1
2 6

Snuke 将吃掉两颗卷心菜,使高桥君无法成为卷心菜大师。吃掉卷心菜的选择方式共有 6 种,如下所示,其中 (i,j)(i, j) 表示品牌 ii 的第 jj 颗卷心菜。

(1,1),(1,2)(1, 1), (1, 2)

(1,1),(2,1)(1, 1), (2, 1)

(1,1),(2,2)(1, 1), (2, 2)

(1,2),(2,1)(1, 2), (2, 1)

(1,2),(2,2)(1, 2), (2, 2)

(2,1),(2,2)(2, 1), (2, 2)

1 1
3
4
1
0 1

即使 Snuke 不吃任何卷心菜,高桥君也可能无法成为卷心菜大师。 此时 Snuke 吃掉 0 颗卷心菜,而选择吃掉哪些卷心菜的方式只有 1 种:什么都不吃。

1 3
100
30 30 30
1 1 1
11 892328666

对于 Snuke 选择吃掉哪些卷心菜的方式数,注意要对 998244353998244353 取模。

数据范围

  • 1N201 \le N \le 20
  • 1M1041 \le M \le 10^4
  • 1Ai1051 \le A_i \le 10^5
  • 1Bj1051 \le B_j \le 10^5
  • ci,j{0,1}c_{i, j} \in \lbrace 0, 1 \rbrace
  • 对每个 1jM1 \le j \le M,存在满足 ci,j=1c_{i, j} = 11iN1 \le i \le N
  • 输入中的所有值均为整数。
难度 NOI/NOI+/CTS
通过率
尝试 0
已通过 0
ID
2231
类型
传统题
Time Limit
3000ms
Memory Limit
1024MiB
上传者
标签