分块
分块
correct!
It's better to burn out than to fade away.
展开
-
分块应用
题目链接题目描述:有 t 组测试数据,每组一个 n ,求前 n 个数的倒数和(1 <= n <= 1e8)思路:打表,没100个数分成一块,对每一块求一次前缀和,对于要求的 n ,判断它最大完全包含的是哪一块,答案就是这一块的前缀和加上后面的数字的倒数和,后面的数字最多99个,循环一次就行了#include <cstdio>#include <cs...原创 2019-08-04 13:58:47 · 164 阅读 · 0 评论 -
整除分块 && 高精度取模运算
高精度取模:a % b = a - (int)(a / b) * b;整除分块:在计算形如 (int) (a / i) i 从1 变化到 n 的和的时候,途中有好多值是相同的,没必要重复计算,因此我们可以求出来其中一个,求个数相乘即可。对于个数的求法,只需要让数字 n 除以要求的数字即可因此有for(int l=1,r;l<=n;l=r+1){ r=n/...转载 2019-08-19 19:31:20 · 247 阅读 · 0 评论 -
洛谷 P2261 [CQOI2007] 余数求和 (等差数列,整除分块)
一开始一直wa,没搞明白为啥,后来知道了首先,num计算的是某一个商的个数,但是 k / (k / l)计算的是小于等于该商的个数,需要减去前面的其次,最后可能num的个数并没有达到,也就是说有一部分数字也能得到当前的商,但是超出了 n 的边界,取个最小值就ok了#include <cstdio>#include <algorithm>#include ...原创 2019-08-19 20:20:27 · 165 阅读 · 0 评论