![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数论
数论
dinlon
这个作者很懒,什么都没留下…
展开
-
51nod 1847 奇怪的数学题(数论/min25筛/杜教筛/斯特林数)
51nod 1847 奇怪的数学题求解∑i=1n∑j=1nsgcd(i,j),sgcd\sum_{i=1}^n\sum_{j=1}^nsgcd(i,j),sgcd∑i=1n∑j=1nsgcd(i,j),sgcd表示次大公约数,n≤1010n\le{10^{10}}n≤1010那么首先有sgcd(i,j)=gcd(i,j)/mn(gcd(i,j))sgcd(i,j)=gcd(i,j)/mn(gcd(i,j))sgcd(i,j)=gcd(i,j)/mn(gcd(i,j))就是gcd除以最小质因子。现在可原创 2021-02-28 21:22:37 · 208 阅读 · 0 评论 -
DZY Loves Math IV(数论/杜教筛/欧拉函数)
DZY Loves Math IVhttps://www.cnblogs.com/birchtree/p/11442419.html求解∑i=1n∑j=1mφ(ij)\sum_{i=1}^n\sum_{j=1}^m\varphi(ij)∑i=1n∑j=1mφ(ij),n≤105,m≤109n\le{10^5},m\le{10^9}n≤105,m≤109首先这道题利用了φ(n)\varphi(n)φ(n)的取值只和n和n的质因数有关,首先枚举第一维,我们将ij进行拆分出gcd,然后利用欧拉函数是积性原创 2021-02-27 09:51:05 · 42 阅读 · 0 评论 -
P2303 [SDOI2012] Longge(数论/欧拉函数)
P2303 [SDOI2012] Longge一道看似非常基础的数论题,但是蕴含了非常多的知识,求解∑i=1ngcd(i,n)\sum_{i=1}^ngcd(i,n)i=1∑ngcd(i,n)这个东西我们轻松地就能化简成id∗φid*\varphiid∗φ的形式,然后考虑如何快速求解,那么可以枚举n的所有因数然后对因数O(n)O(\sqrt{n})O(n)求解φ(n)\varphi(n)φ(n)然后考虑这样子的复杂度和因数个数有关,那么有这样一个表...原创 2021-02-08 17:27:56 · 122 阅读 · 0 评论 -
#3601. 一个人的数论
#3601. 一个人的数论首先这个转化还是很巧妙的,或者很套路的,直接莫比乌斯反演,然后看到了自然数幂之和的形式,那么我们就可以转化为多项式处理,项数就减少到了d+1,然后看到题目给出的都是质因数分解结果,所以最后的结果应该是一个积性的,那么我们把多项式展开后得到的就是若干完全积性函数的和,那么最终我们就可以求解答案了。...原创 2021-02-07 17:23:42 · 86 阅读 · 0 评论 -
BSGS专练
P3846 [TJOI2007] 可爱的质数/【模板】BSGS主要是注意几个细节:首先是ceil(sqrt(mod))然后就是b%=mod,这一步很关键map清空枚举的时候要在map里存b*a^i的值特判a=0的情况,b=0则return 1否则return -1最后没有找到解要return -1#4128. Matrix矩阵BSGS,现在要求的就是对一个矩阵求对数,那么我们的做法还是BSGS,然后分块处理即可,只不过有一些代码细节需要注意。首先就是map的比较运算符需要自己定义,原创 2021-02-07 12:35:42 · 14 阅读 · 0 评论 -
[2021.1.17多校省选模拟4]T1(莫比乌斯反演/组合数学/枚举倍数)
[2021.1.17多校省选模拟4]T1一般人都会想着去枚举直线的斜率,但是枚举斜率之后就会产生多条直线,并且这些直线的长度不一,难以快速求解,所以我们考虑换一种方法枚举。枚举最远点对的横纵坐标之差,这样很容易计算这样的线段数量,然后这里就出现了含有gcd的式子,那么我们容易想到要莫比乌斯反演,通过交换枚举顺序就会得到一个较为好计算的式子。关键在于枚举对象的选择!!!!!这种直线上的点我们枚举最远点的坐标差是最方便的方法。...原创 2021-02-01 21:19:14 · 87 阅读 · 0 评论 -
A. [2021.1.29多校省选模拟11]最大公约数(杜教筛/数论)
A. [2021.1.29多校省选模拟11]最大公约数这是一个杜教筛的经典题目,最后我们只需要筛一下1∗xμ(x)1*x\mu(x)1∗xμ(x)这个函数的前缀和即可,然后看到有111这个函数,我们下意识应该想到的就是μ\muμ,然后又有xμ(x)x\mu(x)xμ(x)所以我们配一个ididid就可以将其抵消为n,最后恰好化简后为单位函数。同样还有一种方法更为简洁,直接配一个ididid就足够了,因为111和μ\muμ可以直接抵消,这样的结果同样也是单位函数。然后这道题我最终只有64分,只是因为我原创 2021-01-30 20:05:13 · 113 阅读 · 0 评论 -
【清华集训2014】Sum)(类欧几里得算法)
【清华集训2014】Sum然后本质上我们需要求解的就是那个带根号式子的奇偶性,然后我们发现这个式子很像是类欧几里得算法,求解一个斜率为无理数直线下的整点个数,然后我们直接对于一般形式求解,那么就是每次利用整数部分将斜率减小,然后交换枚举顺序讨论贡献,这样就可以得到一个规模更小的问题,重复这个过程直到n变为0....原创 2021-01-21 16:29:13 · 156 阅读 · 0 评论 -
P5170 【模板】类欧几里得算法
P5170 【模板】类欧几里得算法https://www.cnblogs.com/bztMinamoto/p/10334354.html对于类欧几里得算法,本质上可以理解为一条直线下的整点个数,是一个矩形区域。然后将整数部分提出,就可以使得这个直线斜率较小,那么我们就可以转化为上方三角形部分,然后就又可以减小斜率了。然后对于不同类型的式子我们都可以对下方的整点定义贡献,然后交换枚举顺序之后,就是讨论每类整点的贡献,然后就可以将问题转换为规模更小的问题。本质思想还是计算每类点对问题的贡献,然后利用整除原创 2021-01-21 16:18:58 · 91 阅读 · 0 评论 -
【BZOJ4916】神犇和蒟蒻(杜教筛)
【BZOJ4916】神犇和蒟蒻(杜教筛)https://www.cnblogs.com/cjyyb/p/8297338.html杜教筛技巧原创 2021-01-16 17:28:18 · 137 阅读 · 0 评论 -
【Luogu3768】简单的数学题(莫比乌斯反演/杜教筛/欧拉函数)
【Luogu3768】简单的数学题https://www.cnblogs.com/cjyyb/p/8298339.html原创 2021-01-16 17:25:22 · 79 阅读 · 0 评论 -
【BZOJ3930】选数(莫比乌斯反演倍数形式,杜教筛)
【BZOJ3930】选数https://www.cnblogs.com/cjyyb/p/8303813.html原创 2021-01-16 17:07:49 · 111 阅读 · 0 评论 -
【BZOJ3512】DZY Loves Math IV(杜教筛)
【BZOJ3512】DZY Loves Math IV(杜教筛)https://www.cnblogs.com/cjyyb/p/10165338.html原创 2021-01-16 17:01:46 · 67 阅读 · 0 评论 -
【LOJ#6682】梦中的数论(min_25筛)
【LOJ#6682】梦中的数论https://www.cnblogs.com/cjyyb/p/11178395.html利用min_25筛,求解约数个数函数平方的前缀和。原创 2021-01-16 16:51:52 · 97 阅读 · 0 评论 -
【LOJ#572】Misaka Network 与求和(莫比乌斯反演/杜教筛/min_25筛)
【LOJ#572】Misaka Network 与求和https://www.cnblogs.com/cjyyb/p/10170630.html看到次大质因子就可以想到是min_25筛了,然后只需要做莫比乌斯反演,然后预处理整除分块点的前缀和,然后再结合杜教筛即可。...原创 2021-01-16 16:45:01 · 101 阅读 · 0 评论 -
【UOJ#188】Sanrd(min_25筛)
【UOJ#188】Sanrd(min_25筛)求解区间[l,r]中所有数次大质因子的和,对于p^k的贡献当k大于1时定义为p,等于1时定义为0.利用min_25筛第二部分,每一次筛掉的就是最小质因子的幂次,所以当前所在S(x,y)的质数贡献的次大质因子一定是pyp_ypy,那么就可以每次统计答案了。统计次大质因子的贡献...原创 2021-01-16 16:31:17 · 110 阅读 · 0 评论 -
LOJ6053简单的函数(min_25筛)
LOJ6053简单的函数https://loj.ac/p/6053min_25筛模板题,但是要注意质数点有2比较特殊,需要在y==0的时候特判质数包含2的情况。#include<bits/stdc++.h>#define LL long longusing namespace std;inline LL read(){ char x='\0'; LL fh=1,sum=0; for(x=getchar();x<'0'||x>'9';x=getchar())if(x原创 2021-01-16 16:15:59 · 159 阅读 · 0 评论 -
P2231 [HNOI2002]跳蚤(裴蜀定理/莫比乌斯反演)
P2231 [HNOI2002]跳蚤给定一个长度为n+1的一列数,第n+1位为m,前n位小于m求解使得他前n个数的加减可以凑出1的方案数首先可以凑出1,这显然是裴蜀定理,推一推就发现他要求所有数的gcd为1那么对于要求gcd恰为x的计数问题,我们常见套路就是钦定所有数是x的倍数,然后利用莫比乌斯反演来求解。...原创 2021-01-14 09:12:32 · 130 阅读 · 0 评论