我们得到了两个整数x和y,当且仅当它满足以下条件时,我们称一个数组是一个完美的数组:
那么如何找到不同x和y的漂亮数组?
例如,如果x为3且y为2,则有四个漂亮的数组:
import { Switch, Route, Link } from 'react-router'
<Route path='/' component={() => {
return (
<div>
<Link to='/'>Home</Link>
<Link to='/users'>Users</Link>
</div>
)
}}
/>
答案 0 :(得分:2)
让我们先做几个例子:
x = 30, y = 3
,x
的主要因素是2, 3, 5
。可能的组合包括2 * 3 * 5
,6 * 5
,2 * 15
,3 * 10
,30
。对于长度为L
的每种可能组合,我们需要计算3个时隙中其元素的可能排列数,即y!/(y-L)!
。我们获得6 + 6 + 6 + 6 + 3 = 27
。
x = 36, y = 5
,x
的主要因素是2, 2, 3, 3
。以与前一个示例相同的方式编写将是乏味的,所以让我们考虑我们想要放置y
和2, 2
的{{1}}个二进制位。我们可以在stars and bars的帮助下计算3, 3
分配到5个分箱的方式,我们需要在2, 2
中放置4个小节。有2, 2
。 6!/(4!2!) = 15
也是如此。所以答案是3, 3
。
将因子x转换为素数除数。这种因子分解是unique。最多可达225
。
计算我们可以将每个p i 分配到sqrt(x)
个bin中的方式。繁殖。
考虑正/负乘以
答案 1 :(得分:0)
首先,你需要考虑因素x。这可以在O(√x)(googl it)中完成。 设x =Πp_i^ k_i(p_i是素数) 计算y个单元的分布Σk_i的数量。 这是(Σk_i+ x-1)!/(x-1)!/Σk_i 还有正面和负面的自由度。 这是制作配对的方式。