题解:P9788 [ROIR 2020 Day2] 区域规划
思路 1
观察式子,不妨设 exgcd
,时间复杂度为
但还要注意
考虑容斥,答案即为 exgcd
,时间复杂度为
综上所述,时间复杂度为
思路 2
当然是暴力加优化了。
我们固定
综上所述,时间复杂度
思路 2 代码如下
#include <bits/stdc++.h>
using namespace std;
#define rep(i, l, r) for(int i = l; i <= r; ++ i)
#define per(i, r, l) for(int i = r; i >= l; -- i)
int n, x, ans;
main()
{
cin >> n >> x;
for(int i = 1; i <= n + 1;++ i)
{
if(i == x) continue;
rep(j, i, n + 1)
{
if(j == x || i * j <= n) continue;
rep(k, max(1, (i * j - n) / j), i - 1)
{
if((i * j - n) / k >= j) continue;
if((i * j - n) % k == 0) ans += 1 + (i != j);
}
}
}
printf("%d", ans);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步