CF1174E Ehab and the Expected GCD Problem
Ehab and the Expected GCD Problem
题目描述
设
Solution
考虑第一个数为
考虑 DP 这一个前缀
不变,那么 。 中 的指数 ,那么 。 中 的指数 ,那么 。
时间复杂度
Code
int N, lst = 0, cur = 1;
mint f[2][21][2];
signed main() {
cin.tie(0)->sync_with_stdio(0);
cin >> N;
int lg = __lg(N);
f[cur][lg][0] = 1;
if ((1 << (lg - 1)) * 3 <= N)
f[cur][lg-1][1] = 1;
For(i, 2, N) {
swap(cur, lst);
For(j, 0, lg) f[cur][j][0] = f[cur][j][1] = 0;
For(j, 0, lg) {
f[cur][j][0] += f[lst][j][0] * (N / (1 << j) - i + 1);
f[cur][j][0] += f[lst][j+1][0] * (N / (1 << j) - N / (1 << (j + 1)));
f[cur][j][0] += f[lst][j][1] * (N / (1 << j) - N / ((1 << j) * 3));
f[cur][j][1] += f[lst][j][1] * (N / ((1 << j) * 3) - i + 1);
f[cur][j][1] += f[lst][j+1][1] * (N / ((1 << j) * 3) - N / ((1 << (j + 1)) * 3));
}
}
cout << f[cur][0][0] << '\n';
}
分类:
标签:
,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2023-01-27 230127 % 你赛