思路
这道题看着比较难,实际上题干已经给了提示:乘法原理
只不过,现在每个数不能重复,这给了我们一个想法:按照一定顺序的排列去算一共有几种不同的序列
举个例子,如果ai上放了1,那么说明xi只有正整数1一种可能,而如果aj上是2,说明xj可以取1或2,但由于ai只能够让xi为1,又要求不重复,所以aj对应的xj只能填2。这样模拟的过程走下来,体现了一个思路:数越小,可能性越少,应当优先考虑数小的ai有多少种对应的数可填入xi,再考虑数大的aj有多少种xj的可能性,这样将它们可能填的数量乘起来,就是最终的结果。
代码