数学(算法)

星期一 更新 算法 105 字 1 分钟阅读
数学(算法)
目录

整除分块#

Dn={⌊ni⌋:1≤i≤n, i∈N+}D_n = \left\{ \left\lfloor \frac{n}{i} \right\rfloor : 1 \le i \le n,\ i \in \mathbb{N}^+ \right\}

这个 DnD_n 就是所有可能的取值集合 相关性质:

  1. |DnD_n| ≤\leq 2n\sqrt{n}
  2. 每一个块的左右端点,l=⌊nd+1⌋+1≤i≤⌊nd⌋l=\lfloor \frac{n}{d+1} \rfloor +1 \leq i \leq \lfloor \frac{n}{d} \rfloor

相关实现: 枚举每一个整除分块(DiD_i)$的区间

for(int l = 1; l <= n; l = r + 1){
int cnt = (n / l);
if(cnt < k) break;
r = (n / cnt);
}

评论

欢迎留下你的想法,友善交流。