首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
P2424 约数和 【整除分块】
】的更多相关文章
洛谷 - P2424 - 约数和 - 整除分块
https://www.luogu.org/problemnew/show/P2424 记 \(\sigma(n)\) 为n的所有约数之和,例如 \(\sigma(6)=1+2+3+6=12\) . 求 \(ans(n)=\sum\limits_{i=x}^{y}\sigma(i)\) . 首先,记 \(f(n)=\sum\limits_{i=1}^{n}\sigma(i)\) ,则 \(ans(n)=f(y)-f(x-1)\) . 对于 \(f(n)=\sum\limits_{i=1}^{n}…
P2424 约数和 【整除分块】
一.题目 P2424 约数和 二.分析 因为都是加法,那么肯定有的一个性质,即前缀和的思想,就是$$ { ans =\sum_{i=1}^y f(i)} - {\sum_{i=1}^x f(i)} $$ 基于上面的性质,分析$ \sum_{i=1}^x f(i) $,因为每个数都是因子之和,那么$1 \to n $ 中一共也就 $n$个因子,其实就将问题转化到了求每个因子的贡献上面. 考虑每个因子最终加 $ \lfloor \frac{n}{i} \rfloor $ 次,所以最终$$ { a…
P2424 约数和 && 真丶除法分块
P2424 约数和 题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f(X).现在的问题是,给定两个正整数X,Y(X<Y),Smart希望尽快地算出f(X)+f(X+1)+--+f(Y)的值,你能帮助Smart算出这个值吗? 输入输出格式 输入格式: 输入文件仅一行,两个正整数X和Y(X<Y),表示需要计算f(X)+f(X+1)+--+f(Y). 输出格式: 输出只…
[笔记] 整除分块 & 异或性质
整除分块 参考资料:整除分块_peng-ym OI生涯中的各种数论算法的证明 公式 求:\(\sum_{i=1}^{n}\lfloor\frac{n}{i}\rfloor\) 对于每个\(\lfloor\frac{n}{i}\rfloor\)值相同的区间\([l,r]\)有\(r=n/(n/l)\),即对于\(\forall x\in [i,n/(n/i)]\)有\(x=\lfloor\frac{n}{i}\rfloor\). 时间复杂度 \(O(\sqrt{n})\) 代码 for(int l…
洛谷P3935 Calculating(整除分块)
题目链接:洛谷 题目大意:定义 $f(x)=\prod^n_{i=1}(k_i+1)$,其中 $x$ 分解质因数结果为 $x=\prod^n_{i=1}{p_i}^{k_i}$.求 $\sum^r_{i=l}f(i)\ mod\ 998244353$. $1\leq l\leq r\leq 1.6\times 10^{14}$. 阅读以下内容前请先学会前置技能整除分块 先分析一下 $f(x)$ 的本质. (读者:不要啰嗦来啰嗦去的好吧!这明显是 $x$ 的约数个数吗!是不是想拖延时间?) 好好好…
51Nod 1225 余数之和 [整除分块]
1225 余数之和 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 F(n) = (n % 1) + (n % 2) + (n % 3) + ...... (n % n).其中%表示Mod,也就是余数. 例如F(6) = 6 % 1 + 6 % 2 + 6 % 3 + 6 % 4 + 6 % 5 + 6 % 6 = 0 + 0 + 0 + 2 + 1 + 0 = 3. 给出n,计算F(n), 由于结果很大,输出Mod 1000000007的结果…
[Bzoj 2956] 模积和 (整除分块)
整除分块 一般形式:\(\sum_{i = 1}^n \lfloor \frac{n}{i} \rfloor * f(i)\). 需要一种高效求得函数 \(f(i)\) 的前缀和的方法,比如等差等比数列求和或对于积性函数的筛法等,然后就可以用整除分块的思想做. 题目解法 化公式变成比较方便的形式: \(\ \sum_{i = 1}^n \sum_{j = 1}^m (n \mod i)(m \mod j), i \ne j\) \(= \sum_{i = 1}^n \sum_{j = 1}^m…
P2568 莫比乌斯反演+整除分块
#include<bits/stdc++.h> #define LL long long using namespace std; ; bool vis[maxn]; int prime[maxn]; int mu[maxn]; int sum1[maxn]; int sum2[maxn]; ; void get_mu()// mo bi su si han shu { mu[]=; vis[]=; ;i<maxn;i++) // prime = 0; other = 1; { ;} ;…
LOJ #2802. 「CCC 2018」平衡树(整除分块 + dp)
题面 LOJ #2802. 「CCC 2018」平衡树 题面有点难看...请认真阅读理解题意. 转化后就是,给你一个数 \(N\) ,每次选择一个 \(k \in [2, N]\) 将 \(N\) 变成 \(\displaystyle \lfloor \frac{N}{k} \rfloor\) ,到 \(1\) 停止. 求一共有多少不同的操作序列,也就是操作次数不一样或者某次操作的 \(k\) 不相同. 题解 首先考虑 dp ,令 \(f_i\) 为以 \(i\) 为开头的不同操作序列数. 显然…
[POI2007]ZAP-Queries (莫比乌斯反演+整除分块)
[POI2007]ZAP-Queries \(solution:\) 唉,数论实在有点烂了,昨天还会的,今天就不会了,周末刚证明的,今天全忘了,还不如早点写好题解. 这题首先我们可以列出来答案就是: \(ans=\sum_{i=1}^{a}{\sum_{j=1}^{b}{[gcd(i,j)==d]}}\) 我们发现后面那个东西(只有\(gcd(i,j)==d\) 时才为一)跟莫比乌斯很像,莫比乌斯是(只有$n==$1 才为一),所以我们再尝试转化一下(把d转化成1): \(ans=\sum_{i…