AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3850. 数组错位排列计数

困难通过率 24% · 提交 203 · 通过 49
回溯贪心排序枚举

小慕有两个数组 a 和 b,里面只包含数字,且每个数组中的数字各不相同。现在小慕想调整数组 a 中数字的顺序,使得尽可能多的位置满足 a[i] > b[i]。 请你帮小慕计算一下,在所有能达到的排列中,一共有多少种不同的 a 数组排列方式。

提示:带虚线的词点一下有通俗解释。

输入描述

输入的第一行是数组 a 中的数字, 输入的第二行是数组 b 中的数字, 其中只包含数字,每两个数字之间相隔一个空格,a,b 数组大小不超过 10

输出描述

输出所有可以达到最优结果的 a 数组数量

示例

示例 1

输入

11 12 20
10 13 7

输出

2

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
田忌赛马 - 最优排列示例 a = [11, 12, 20] , b = [10, 13, 7] 原始 a: 11 12 20 b: 10 13 7 重排 重排后 a': 20 11 12 对比: 20>10 ✓ 11<13 ✗ 12>7 ✓ 最优结果:2 次 a[i]>b[i] 另一种排列 [20,12,11] 也得到 2 次 所以输出 2(共两种排列达到最优)
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「数组错位排列计数」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。