3541:挖矿

时间限制:2 S   /  内存限制:65536 KB
AC:28   /  Submit:138
问题描述

作为 mc 骨灰玩家的徐伟今天来挖矿了,他选中了一块地,总共 n 层,每层有 m 块矿石,如下图就是一个 2 * 8 的地块:

我们用小写字母 a - z 来表示每一种矿石的类型,那么上图的分布就可以表示为:

a b c d e f g h

a b c d e f g h

然而,每块矿石掉落的矿的数量也可能是不一样的,有的矿石掉落的矿多一些,有的则少一些。

徐伟是个强迫症玩家,他每次挖矿的时候都会从上往下一层一层地挖,不然挖的凹凸不平他会很难受。

现在徐伟告诉你他需要各种矿的数量,你可以告诉他至少需要挖多少层吗?

输入描述

第一行是两个正整数 n 和 m 表示地块的大小。

然后是 n * m 个小写字母,表示每个矿石的类型。

接下来是 n * m 个数字,表示每个矿石可以掉落的矿的数量。(每个数字都是不大于 100 的非负整数)

最后是一个正整数 T 表示询问的次数。

每次询问 26 个数字,表示每种类型的矿徐伟需要的数量。(每个数字都是不大于 1e9 的非负整数)

输出描述

针对每次询问,输出徐伟至少需要挖多少层;如果把整个地块全部挖完都无法满足徐伟,输出 -1;最后换行。

注意:每次询问都是独立的。

样例输入复制样例

3 4

a b c d

a a b b

c c d d

1 2 3 4

2 2 3 3

7 6 5 2

2

5 7 2 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

6 2 5 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

样例输出

2

-1

提示说明

50% 的测试用例:1 <= n,T <= 200

100% 的测试用例:1 <= n,T <= 20000,1 <= m <= 10

相关

2022蓝桥杯省赛模拟赛


Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1