题面: 传送门 思路: 首先,我们需要证明一个结论:d(i*j)等于sigma(gcd(x,y)==1),其中x为i的约数,y为j的约数 对于nm的每一个质因子pi分别考虑,设n = pi^ai + n',m = pi^bi + m' 那么显然质因子pi对d(nm)的贡献为(ai+bi+1) 同理,考虑右边的式子,我们发现质数pi对右侧做的贡献仍然是(ai+bi+1),即如下的(x,y) (pi^ai,1) (pi^(ai-1),1) ..... (1,1) .....(1,pi^(bi-1))…
P3327 [SDOI2015]约数个数和 莫比乌斯反演 链接 luogu 思路 第一个式子我也不会,luogu有个证明,自己感悟吧. \[d(ij)=\sum\limits_{x|i}\sum\limits_{y|j}[gcd(x,y)==1]\] \[\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\sum\limits_{x|i}\sum\limits_{y|j}[gcd(x,y)==1]\] \[\sum\limits_{i=1}^{n}\sum\li…
[BZOJ3994][SDOI2015]约数个数和 Description  设d(x)为x的约数个数,给定N.M,求   Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M. Output T行,每行一个整数,表示你所求的答案. Sample Input 2 7 4 5 6 Sample Output 110 121 HINT 1<=N, M<=50000 1<=T<=50000 题解:依旧是这个结论 但由于这次是多…
Description  设d(x)为x的约数个数,给定N.M,求     Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M. Output T行,每行一个整数,表示你所求的答案. Sample Input 2 7 4 5 6 Sample Output 110 121 解题思路: 有一个喜闻乐见的结论: ${\sum_{i=1}^{n}}{\sum_{j=1}^{m}}{d(i*j)]}={\sum_{i=1}^{n}}{\su…
题目描述 设d(x)d(x)d(x)为xxx的约数个数,给定NNN.MMM,求 ∑i=1N∑j=1Md(ij)\sum^{N}_{i=1}\sum^{M}_{j=1} d(ij)i=1∑N​j=1∑M​d(ij) N,M,T<=50000N,M,T<=50000N,M,T<=50000 题目分析 首先很不显然的有这样一个结论: d(ij)=∑x∣i∑y∣j[(x,y)==1]d(ij)=\sum_{x|i}\sum_{y|j}[(x,y)==1]d(ij)=x∣i∑​y∣j∑​[(x,y…
---题面--- 题解: 为什么SDOI这么喜欢莫比乌斯反演,,, 首先有一个结论$$d(ij) = \sum_{x|i}\sum_{y|j}[gcd(x, y) == 1]$$为什么呢?首先,可以看做从两个数中分别取一些不重叠的质数的$k_{i}$次方,组成新数的方案数.那如果有需要重叠的部分怎么办?可以看做全都在第一个or第二个数中取.但是一个数的次数不够怎么办呢?相当于以1为媒介,可以简介统计到这些情况比如$2^{3} \cdot 2^{2}  = 2^{5}$可以看成$1, 2^{3}$…
题面 我的做法基于以下两个公式: \[[n=1]=\sum_{d|n}\mu(d)\] \[\sigma_0(i*j)=\sum_{x|i}\sum_{y|j}[gcd(x,y)=1]\] 其中\(\sigma_0(n)\)表示\(n\)的约数个数 第一个公式是莫比乌斯函数的基本性质,至于第二个公式的证明,可以考虑\(i*j\)中每一个质因子对 \(\sigma_0(i*j)\) 的贡献,对于一个质因子 \(p\) ,若它在 \(i\) 中的次数为 \(k_1\) ,它在 \(j\) 中的次数为…
[BZOI 3994] [SDOI2015]约数个数和 题面 设d(x)为x的约数个数,给定N.M,求\(\sum _{i=1}^n \sum_{i=1}^m d(i \times j)\) T组询问,\(N,M,T \leq 50000\) 分析 首先有一个结论 \[d(nm)= \sum _{i |n} \sum _{j|m} [gcd(i,j)=1]\] 这是因为nm的约数都可以表示为\(i \times \frac{m}{j}\)的形式,并且为了不重复算,要保证\(gcd(i,j)=1\…
2015 题意:\(d(i)\)为i的约数个数,求\(\sum\limits_{i=1}^n \sum\limits_{j=1}^m d(ij)\) \(ij\)都爆int了.... 一开始想容斥一下用\(d(i)\)和\(d(j)\)算\(d(ij)\),发现不行... 然后翻题解看到了一步好神的转化: \[ d(nm) = \sum_{i\mid n} \sum_{j\mid m} [gcd(i,j)=1] \] 晚上再补吧还是没拿草稿纸... 补: \(Proof.\) 首先注意约数个数…
https://www.lydsy.com/JudgeOnline/problem.php?id=3994 https://blog.csdn.net/qq_36808030/article/details/77056706 莫比乌斯反演,我现在莫比乌斯反演都不会写不会推了. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath&…
题目描述 设d(x)为x的约数个数,给定N.M,求 \sum^N_{i=1}\sum^M_{j=1}d(ij)∑i=1N​∑j=1M​d(ij) 输入输出格式 输入格式: 输入文件包含多组测试数据.第一行,一个整数T,表示测试数据的组数.接下来的T行,每行两个整数N.M. 输出格式: T行,每行一个整数,表示你所求的答案. 输入输出样例 输入样例#1: 复制 2 7 4 5 6 输出样例#1: 复制 110 121 说明 1<=N, M<=50000 1<=T<=50000 有一个…
题目链接 \(Description\) 求\[\sum_{i=1}^n\sum_{j=1}^md(ij)\] \(Solution\) 有结论:\[d(nm)=\sum_{i|d}\sum_{j|d}[\gcd(i,j)=1]\] 证明可以对质因子单独考虑吧,不想写了,背过就好了.见这:https://blog.csdn.net/PoPoQQQ/article/details/45078079. \[\begin{aligned}\sum_{i=1}^n\sum_{j=1}^md(ij)&=\…
这题做的历程堪称惊心动魄 刚刚学了莫比乌斯反演的我高高兴兴的和cbx一起反演式子 期间有突破,有停滞,有否定 然后苟蒻的我背着cbx偷偷打开了题解 看到了 我...... 去你的有个性质啊(当然还是自己知识储备不足) 具体证明(其实当时主要是想的方向偏了,不然这个定理自己也能想出来) 然后就可以愉快的反演了  Σ(i∈[1,n])Σ(j∈[1.m])d(x,y) =Σ(i=1)Σ(j=1)Σ(x|i)Σ(y|j)[gcd(x,y)==1] =Σ(i=1)Σ(j=1)((n/i)*(m/j))Σ(…
求\(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}d(ij)\) 不知道怎么讲..... 首先考虑\(d(ij)\)究竟是什么 首先,很自然地想到,既然是求\(ij\)的约数个数 因此就枚举\(i,j\)的约数 即\(d(ij) =\sum\limits_{x|i}\sum\limits_{y|j}...\) 注意到,我们不能重复地统计 我们从唯一分解得形式来考虑 因为多个质因子个和一个质因子的情况是一致的 因此我们考虑一个质因子 假设\(i = p^a,…
3994: [SDOI2015]约数个数和 Time Limit: 20 Sec  Memory Limit: 128 MB Description  设d(x)为x的约数个数,给定N.M,求   Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M.  Output T行,每行一个整数,表示你所求的答案. Sample Input 2 7 4 5 6 Sample Output 110 121 HINT 1<=N, M<=5000…
题面 求\(\sum_{i=1}^n\sum_{j=1}^md(ij)\) \(\leq 50000\)组数据,\(1\leq n,m\leq 50000\). 题目分析 首先,你需要知道一个结论: \[ d(ij)=\sum\limits_{x|i}\sum\limits_{y|j}[gcd(x,y)==1] \] 你可以认为\(x,y\)表示你选择的因数为\(\frac i x \cdot y\),即:\(x\)表示\(i\)中不要的部分,\(y\)表示\(j\)中要的部分. 如果\(gcd…
又是一道卡常好题 坑掉我的 \(define \space int \space long \space long\) 感觉出题人并没有获得什么快乐-- Description link 题意概述: 设 \(d(x)\) 为 \(x\) 的约数个数,求: \[\sum_{i=1}^n \sum_{j=1}^n d(ij)\] 多组询问,\(1\leq n,m,T \leq 5 \times10^4\) Solution 首先给一个引理: \[d(ij)=\sum_{x|i}\sum_{y|j}…
首先由这样一个式子:\( d(ij)=\sum_{p|i}\sum_{q|j}[gcd(p,q)==1]\frac{pj}{q} \)大概感性证明一下吧我不会证 然后开始推: \[ \sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{p|i}\sum_{q|j}[gcd(p,q)==1]\frac{pj}{q} \] \[ \sum_{p=1}^{n}\sum_{q=1}^{n}[gcd(p,q)==1]\sum_{p|i}\sum_{q|j}\frac{pj}{q} \] \[…
点此看题面 大致题意: 设\(d(x)\)为\(x\)的约数个数,求\(\sum_{i=1}^N\sum_{j=1}^Md(i·j)\). 莫比乌斯反演 这是一道莫比乌斯反演题. 一个重要的性质 首先我们要先了解\(d(i·j)\)这个函数的性质: \[d(i,j)=\sum_{x|i}\sum_{y|j}[gcd(x,y)==1]\] 证明: 我也不知道,应该就是枚举\(i\)和\(j\)的约数,求出其中不互质的约数对个数,避免重复计算. 一些定义 按照莫比乌斯反演的常见套路,我们可以定义\(…
P3327 [SDOI2015]约数个数和 神犇题解(转) 无话可补 #include<iostream> #include<cstdio> #include<cstring> #define re register using namespace std; template<typename T>T max(T &a,T &b){return a>b?a:b;} template<typename T>T min(T &a…
[BZOJ3994]约数个数和(莫比乌斯反演) 题面 求\[\sum_{i=1}^n\sum_{j=1}^md(ij)\] 多组数据\((<=50000组)\) \(n,m<=50000\) 其中\(d(x)\)是\(x\)的约数个数 题解 orz ZSY 巨佬 根据玄学(我也不知道为什么)的公式 \[d(ij)=\sum_{x|i}\sum_{y|j}[gcd(x,y)==1]\] 所以,所求等于 \[\sum_{i=1}^n\sum_{j=1}^m\sum_{u|i}\sum_{v|j}[…
BZOJ_3994_[SDOI2015]约数个数和_莫比乌斯反演 Description  设d(x)为x的约数个数,给定N.M,求   Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M. Output T行,每行一个整数,表示你所求的答案. Sample Input 2 7 4 5 6 Sample Output 110 121 HINT 1<=N, M<=50000 1<=T<=50000 基本同BZOJ4176…
题目 设d(x)为x的约数个数,给定N.M,求\(\sum_{i = 1}^{N} \sum_{j = 1}^{M} d(ij)\) 输入格式 输入文件包含多组测试数据.第一行,一个整数T,表示测试数据的组数.接下来的T行,每行两个整数N.M. 输出格式 T行,每行一个整数,表示你所求的答案. 输入样例 2 7 4 5 6 输出样例 110 121 提示 1<=N, M<=50000 1<=T<=50000 题解 好神的题[是我太弱吧] 首先上来就伤结论.. 题目所求 \[ans…
Description  设d(x)为x的约数个数,给定N.M,求   Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M. Output T行,每行一个整数,表示你所求的答案. Sample Input 2 7 4 5 6 Sample Output 110 121 HINT 1<=N, M<=50000 1<=T<=50000 思路:关键在于要知道X*Y的因子,为X的因子i和Y因子j的且满足i和j互质的个数. 然后…
3994: [SDOI2015]约数个数和 Description  设d(x)为x的约数个数,给定N.M,求   Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M. Output T行,每行一个整数,表示你所求的答案. Sample Input 2 7 4 5 6 Sample Output 110 121 HINT 1<=N, M<=50000 1<=T<=50000 Source Round 1 感谢yts19…
正解:莫比乌斯反演 解题报告: 传送门! 先考虑证明一个结论,$d_{i\cdot j}=\sum_{p|i}\sum_{q|j}[gcd(p,q)==1]$ 看起来就很对的样子,但还是证下趴$QwQ$ 考虑分解质因数,设$i=p_{1}^{a_{1}}\cdot p_{2}^{a_{2}}\cdot p_{3}^{a_{3}},j=p_{1}^{b_{1}}\cdot p_{2}^{b_{2}}\cdot p_{3}^{b_{3}}$,则$i\cdot j=p_{1}^{a_{1}+b_{1}…
Description  设d(x)为x的约数个数,给定N.M,求     Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M.   Output T行,每行一个整数,表示你所求的答案.   Sample Input 2 7 4 5 6 Sample Output 110 121 HINT 1<=N, M<=50000 1<=T<=50000   这篇blog讲得很不错http://blog.codebursts.co…
http://www.lydsy.com/JudgeOnline/problem.php?id=3994 (题目链接) 题意 多组询问,给出${n,m}$,求${\sum_{i=1}^n\sum_{j=1}^m d(i×j)}$,${d(i×j)}$为${ij}$的约数个数. Solution 看到这个式子感觉无从下手,这个${d(ij)}$比较丑,有一个比较经典的公式:$${d(nm)=\sum_{i|n}\sum_{j|m} [gcd(i,j)=1]}$$ 这个是怎么得来的呢.每一个${nm…
http://www.lydsy.com/JudgeOnline/problem.php?id=3994 https://www.luogu.org/problemnew/show/P3327#sub 参考:https://blog.csdn.net/zmoiynlp/article/details/45176129 (他的公式好像最后一点有些问题) 请先锻炼好抗打击能力再做这道题,可以看我的模板:数论函数 & 莫比乌斯反演 我们有\(d(ij)=\sum_{k|i}\sum_{l|j}[gcd…
http://www.lydsy.com/JudgeOnline/problem.php?id=3994 设d(x)为x的约数个数,给定N.M,求 用到的一个结论: 证明: 枚举n的约数i,枚举m的约数j 那么i*j一定是n*m的约数 d(nm)相当于不同的i*j 的个数 若i, j 不互质 设gcd(i,j)= g , 则 i= p*g ,j=q*g 那么i*j 可以 组成两个互质数p*g*g 和 q 的乘积 p*g*g 和 q 也都输n和m的约数 即p*g*g 和 q 也都是合法的i,j 所…