Ehab and the Expected GCD Problem
题意
定义 $f(p)$ 表示 一个排列 $p$ 的 $g_1,g_2 \cdots g_n$ 的种类数, $g_i$ 表示该排列前 $i $ 个数的 $gcd$
$f_{max}(n)$ 表示 $n$ 的排列的最大 $f$ 值
给 $n$ 求 $f(p)=f_{max}(n)$ 的方案数
题解
显然 要让 $f$ 最大, 排列的第一个数为 $2^k$ 或 $2^{k-1}3$ , 设 $dp[i][x][t]$ 表示前 $i$ 个数的 $gcd$ 为 $\large 2^{x} 3^y$ 的方案数
$f[x][y]$ 表示 $\Large \lfloor \frac n {2^x*3^y}\rfloor$ , 答案为 $dp[n][0][0]$
代码
1 | int dp[N][21][3]; |