专栏文章
题解:P14304 【MX-J27-T1】分块
P14304题解参与者 15已保存评论 15
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 15 条
- 当前快照
- 1 份
- 快照标识符
- @mini0cpp
- 此快照首次捕获于
- 2025/12/02 02:44 3 个月前
- 此快照最后确认于
- 2025/12/02 02:44 3 个月前
A. 分块
题意
给定 ,询问有多少个 满足 是 的因子。
次询问,,。
部分分 40
对于一次询问,我们肯定可以直接暴力遍历所有的 进行判断。
可以预处理,先把 到 都扫一遍,然后可以知道每个 的答案。
把答案存下来,每次询问即可 回答。
时间复杂度 。
部分分 50
这一档分虽然 做不了了,但是 是可行的。
令 ,我们可以枚举 。
对于一个 ,考虑它会给哪些 产生贡献。
注意到一定是形如 的形式才会被 带来贡献。
具体的,由于 而 ,因为有 所以 。
也就是说,。
因此,枚举 ,计算多少个 在 之间。
时间复杂度 。
满分 100
50 分的做法,存在一个关键性质:只有 这三类形式的 。
而显然,如果存在 ,则 一定存在 。其他两种同理。
因此,我们只关心最大的 的 是多少。剩下的 都一定合法。
直接计算 ,则形如 的有 个。
同理可以计算出 和 形式的数的个数。
具体实现在 周围往下枚举若干个,即可知道精确的 的数的个数,或使用二分搜索同理。
实现的时候,如果需要开根号,想要调用 ,需要注意,对于 类型应该使用 ,否则会产生精度误差导致挂分。这是因为 只在 精度范围内,而 在 精度范围内。 的精度范围内无法精确表示 类型。
依据实现时间复杂度为 或 。
相关推荐
评论
共 15 条评论,欢迎与作者交流。
正在加载评论...