信息
- ID
- 1518
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
若 N=1,列最大值序列 B 可以任取,A1 随之唯一确定,答案是 KM;M=1 时同理为 KN。
下面设 N,M≥2。任意网格都满足 Ai≤Bj,所以必须有 maxA≤minB;反过来,只要该不等式成立,就能把各行最小值与各列最大值放在前两行、前两列的交叉位置,再用对应的行最小值填充其余格子,从而构造出所需网格,因此这也是充分条件。
枚举 x=maxA。所有元素不超过 x 且至少一个等于 x 的序列 A 有 xN−(x−1)N 个,而序列 B 的每个元素都可在 x 到 K 中选择,共有 (K−x+1)M 个。答案即 ∑x=1K(xN−(x−1)N)(K−x+1)M。
用二进制快速幂计算每一项,时间复杂度为 O(Klog(N+M)),额外空间复杂度为 O(1)。