他这个题意里面的循环就是置换环,你要存在一个长度为 A 和一个长度为 B 的置换环使得 A 中元素小于 B 中元素。
比较元素的大小比较难以理解,所以可以值域和下标交换,答案显然不变,问题变成你要存在一个长度为 A 和一个长度为 B 的置换环使得 A 中所有元素在 B 中所有元素之前出现。
所以可以认为是我们要把至少一个长度为 A 的置换环放到至少一个长度为 B 的置换环前面,这样的限制像直接告诉你了要容斥。
所以钦定 i 个长度为 A,j 个长度为 B 的置换环出来,且认为 i 个环在 j 个环前面,前 i 个环和后 j 个环内部两两不区分顺序,容斥系数就是 (-1)^{i+j},设 i 个长度为 A 的环的方案数是 f_i,j 个长度为 B 的环的方案数是 g_j,剩下的数随便放都行,那么此时对答案的贡献就是 (-1)^{i+j}f_ig_j\binom{n}{Ai+Bj}(n-Ai-Bj)!=(-1)^{i+j}f_ig_j\dfrac{n!}{(Ai+Bj)!}。
所以如果可以计算 f_i,就可以使用卷积快速计算出答案。
计算 f 也是简单的,长度为 A 的置换环数量是 (A-1)!,考虑带上标号,最后外面乘上 (Ai)!,贡献就是 \dfrac{1}{A},注意环之间不区分顺序,所以 f_i=\dfrac{(Ai)!}{i!A^i},g_i 同理。