
数学==杜教筛/莫比乌斯/积性函数/欧拉等数论
哦
Helium_wild
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C - Aladdin and the Flying Carpet(一个数所有因子的个数 质因子分解)
题目题意:问有几种边长为整数的矩形面积等于a,且矩形的短边不小于b思路:质因子分解求出a的因子对数.(e1+1)* (e2+1)* … *(e3+1).在暴力求出1-b内的a的因子个数,相减一下就好了。#include<cstdio>#include<cstring>#include<iostream>#include<algorithm&g...原创 2019-06-30 11:48:24 · 142 阅读 · 0 评论 -
B - Prime Independence(质因子分解+HK)
题目题意:a * 一个质数=b,则a,b有关系。给你n个数,求出没关系的一个最大团。想办法转化成二分图做。sigma(质因子指数)的奇偶来建图。因为*一个质数,sigma(质因子指数)+1,奇偶性发生变化。如何找出这么多关系呢,难道要对一个数来讲,对所有质因子一个一个的乘除看谁在里面吗!!绝对TLE。那我们就对于每一个数,把他的所有质因子都除1遍,看可不可以找到一个数乘以这个质因子=这个数。...原创 2019-06-30 11:29:58 · 318 阅读 · 0 评论 -
J - Mysterious Bacteria(求最大的可行幂,质因子分解+负数判断)
题目题意:给出一个数 x,求满足 x=p^k 的 k 值,其中 p、k 为整数。思路: x=p1^e1 * p2^e2 * … * pn^en;k=gcd(p1,p2…pn);假如x为负数时,求出的k为偶数,这样是不可能成立的,因为任何数的偶次幂非负。此时将求出的k一直/2,直到k为奇数,就是x为负数时的答案。#include<cstdio>#include<ios...原创 2019-06-15 00:00:40 · 204 阅读 · 0 评论 -
D - Sigma Function(质因子分解+)
题目可知:p为质数,p是2,或者p是奇质数.让求f(1)-f(n)中偶数的个数,不太好求,可以求出来奇数个数。要想是奇数,f(x)每项都要是奇数就好了。p=2时:该项为奇数;p为奇质数时:p^e e为偶数时,该项为奇数(由下图可知)。所以当一个数是平方数时,每奇质数和2的幂都是偶数。当一个数是平方数的2倍时,奇质数的每项的幂是偶数,这些项是奇数,然后他是平方数的2倍,带有2的奇次...原创 2019-06-13 10:03:41 · 193 阅读 · 0 评论 -
HDU2879-HeHe(积性函数)
题目题意:He[N]的值为 方程(X^2)%N=X解的个数. HeHe[N]是He[N]的前缀积.多组样例n,m:求HeHe[n]%m的值.题解:像这种只给个公式的,一般是打表或者积性函数。打表没看出来规律。证明He[n]是积性函数: 分步证明:1.p是质数:He[p]=2。(x=0,x=1)2.gcd(a,b)=1,He[a*b]=He[a]He[b];证出除0,1以外的两组解习...原创 2019-06-11 19:33:40 · 262 阅读 · 0 评论 -
HDU-2685-(数论公式题 记住就好了)
题目完全不想看证明了!!!要记住!!!(x-1)%k=(k+x%k-1)%k;(简单想想就很容易知道)#include<cstdio>#include<iostream>#define en '\n'using namespace std;typedef long long ll;ll gcd(ll x,ll y){ return y?gcd(y,...原创 2019-06-16 21:12:25 · 223 阅读 · 0 评论 -
bzoj1045(糖果传递 数学 中位数最优)
题目参考链接 画线部分不严谨#include<cstdio>#include<cmath>#include<algorithm>using namespace std;typedef long long ll;const int N=1e6+5;ll a[N],S[N];int main(){ int n;scanf("%d",&am...原创 2019-09-10 01:06:56 · 192 阅读 · 0 评论 -
Y - The Super Powers(输出int内的所有可拆成a^b的数 枚举)
题目题意:没有输入,找出所有的超级数,即可以拆分成至少两个数的幂形式。本来想dfs枚举的,枚举所有质因子的指数,知道这个数超int判断前面传来的参数是否有不为质数的指数。但其实就是把所有的数都枚举了一遍。。。直接枚举2-(1<<16)即可。因为大于(1<<16)的数的4.5.6…次方都超int 而1,2,3都是素数,故不合题意。对于2-(1<<16)里...原创 2019-07-01 13:20:27 · 220 阅读 · 0 评论 -
E - Leading and Trailing (n^k前三位和后三位)
题目思路:n^k的后三位直接快速幂取模1000即可。10^2.18184=152 。10^2=100。10^0.18184=1.52;故想知道数x的前y位可,( 10^(log10(x)-(int)(log10(x))) )*pow(10,y-1).#include<cstdio>#include<cmath>#include<cstring>...原创 2019-06-30 12:13:27 · 185 阅读 · 0 评论 -
N - Trailing Zeroes (III)(阶乘尾部x个0最小的数 二分查找)
题目题意:输出一个数x满足 x!尾部0的个数为q;可知一个数i尾部0的个数与10有关,10=2*5(只有这一种表示);任何一个数的阶乘的因子2的个数总大于5的个数!!(很容易理解吧)。故x!尾部有y个0,代表x!质因子里面有y个5.满足单调性,x越大,x!质因子5的个数越多。二分查找答案。#include<cstdio>#include<iostream>#...原创 2019-06-15 00:20:39 · 210 阅读 · 0 评论 -
K - Large Division(判断一个大数是否是另一个数的倍数)
模拟除法,不用算出来商而而已。for(;i<len;++i) ans=ans*10+(s[i]-'0'),ans%=b;#include<cstdio>#include<iostream>#include<cstring>#define en '\n'using namespace std;typedef long long ll;...原创 2019-06-14 23:48:28 · 1006 阅读 · 0 评论 -
初等数论 - 定理证明
欧拉定理若n,a为正整数,且n,a互质: 费马小定理假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p).例如: 假如a是整数,p是质数,则a,p显然互质(即两者只有一个公约数1),那么我们可以得到费马小定理的一个特例,即当p为质数时候, a^(p-1)≡1(mod p)。欧几里得中国剩余定理古娜拉黑暗之神...原创 2019-03-07 23:48:14 · 1516 阅读 · 0 评论 -
HDU4746(Mophues 莫比乌斯反演模板提)
题目//预处理后半部分//f[i][j]:i的 所有k<=j的约数 的mu和.(其实不是他的mu之和 而是除以它得到的另一个因子的mu之和 推式子会有的啦)for(int d=1;d<=N;++d) for(int i=d;i<=N;i+=d) f[i][t[d]]+=mu[i/d];//d作为i的约数 对f[i][t[d]]的贡献是mu[i/d]for(int...原创 2019-08-28 20:35:50 · 208 阅读 · 0 评论 -
bzoj3994(约数个数和 简单反演)
题目感觉这题好简单哦#include<cstdio>using namespace std;typedef long long ll;const int N=5e4+5,mod=1e9+7;int is[N],prime[N];ll mu[N],s[N];void init(){ mu[1]=1;int tot=0; for(int i=2;i<...原创 2019-08-28 14:37:05 · 151 阅读 · 0 评论 -
bzoj1101Zap(莫比乌斯反演入门)
题目#include<cstdio>#include<iostream>#include<algorithm>using namespace std;typedef long long ll;const int N=5e4+5;int is[N],prime[N],mu[N],sum[N];void Moblus(){ mu[1]=1...原创 2019-08-14 11:28:33 · 182 阅读 · 0 评论 -
HDU1695(GCD 莫比乌斯反演入门)
题目以下均学习于:https://blog.youkuaiyun.com/lixuepeng_001/article/details/50577932题意: 给你 a , b , c , d , k 五个值 (题目说明了 你可以认为 a=c=1) x 属于 [1,b] ,y属于[1,d] 让你求有多少对这样的 (x,y)满足gcd(x,y)==k。#include<iostream>...原创 2019-08-14 11:08:03 · 252 阅读 · 0 评论 -
HDU2588-GCD(欧拉函数在gcd里的小运用)
题目题意: 给出N,M,求出有多少整数X满足1<=X<=N and gcd(X,N)>=M.我第一直觉:M可能不是N的因子,那就让M调大一点变成N的因子。然后我开始傻逼了。。gcd(X/M,N/M)>=1 ,那这个式子答案不就是X/M。。。妈的,这样求的话求出来的不是1-N中有多少是M的倍数原创 2019-06-12 09:59:08 · 260 阅读 · 0 评论 -
O - GCD - Extreme (II)(欧拉函数在gcd里的小运用)
Oemmm没思路。。。看题解。。。暴力会T飞的哈哈哈哈gcd(i,j)=d得gcd(i/d,j/d)=1,就转化成phi(j/d)*d。故对于每个j:gcd(i,j),该j对整个题目上的式子的贡献就是sigma(phi(j/d)*d),d是j的因子!!!你以为到了这里对我这种智障就完了吗!!!我竟然要外层循环for(i,1,N)一个一个的枚举出来每个的sigma。。。每个i会有好多不是i...原创 2019-06-12 08:47:47 · 305 阅读 · 0 评论 -
欧拉函数的学习
积性函数的证明:gcd(m,n)=1,m,n没有公因子.所以:phi(n)=n(1-p/1)(1-q/1)…(1-k/1)phi(m)=m(1-s/1)(1-r/1)……(1-j/1)phi(nm)= n m (1-p/1) (1-q/1)…(1-k/1) * ( 1-s/1)(1-r/1)……(1-j/1)。void getphi()//线性素数筛+欧拉筛.{ phi[1]=1...原创 2019-06-11 15:45:03 · 285 阅读 · 0 评论 -
A - Bi-shoe and Phi-shoe 找到一个最小的数欧拉值大于x的数(欧拉函数的性质)
A - Bi-shoe and Phi-shoe题意:给出n个欧拉值,对于每一个值找到它的幸运数字,该幸运数字数的phi大于它自己,求找到的这n个幸运数字总和最小,找的幸运数字数可以重复。1.两个质数a<b之间的数x,则phi(x)<=phi(a)&&phi(x)<phi(b).(第一个等号是否可取 未知。。。)2.所以phi(X)>=Y,X最小...原创 2019-06-11 15:26:25 · 229 阅读 · 0 评论 -
cf697E. PLEASE(简单概率+基础数论知识)
题目题意有三个杯子都倒放在桌面上,中间的杯子里有筛子,每一次都把中间的杯子与左右两边的杯子等概论交换,问交换n后,筛子还在中间的杯子里的概率,对该式子约分之后 分母分子分别%1e9+7 输出分子分母。n非常大,给你k个数,n就是这k个数的乘积。#include<bits/stdc++.h>using namespace std;const int mod=1e9+7,p...原创 2019-11-06 10:45:22 · 316 阅读 · 0 评论 -
HDU1576-A/B(逆元模板)
题目#include<iostream>#define en '\n'using namespace std;typedef long long ll;const ll mod=9973;void ex_gcd(ll a,ll b,ll &x,ll &y){ if(!b){ x=1,y=0; return; ...原创 2019-07-01 14:33:55 · 159 阅读 · 0 评论 -
M - Help Hanzo (大数区间素数筛)
题目思路:先对1e5之内的素数筛好,用这些素数筛去大区间内的合数。#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define m(a,b) memset(a,b,sizeof a)#define en '\n'using namespace...原创 2019-06-30 13:48:51 · 317 阅读 · 0 评论 -
G - Harmonic Number (II) (除数最简单循环节)
题目以下以27举例。。。思路: 27/7=3,27/8=3,27/9=3;当x>=27/(blo+1)&&x<=27/blo:27/x=blo;故可枚举blo,因为一段连续的数,27➗其的商是一样的值。当blo>=sqrt(n)时,这样得到区间的左端点很可能是右端点+1,故此时无效。则对1-n/(sqrt(n)+1)这些数暴力,剩下的枚举商blo.#i...原创 2019-06-30 12:49:09 · 172 阅读 · 0 评论 -
HDU-1792-( 两个互质的数线性组合最大不能表示的数和不能表示数的个数)
题目题意:给两个数m,n:gcd(m,n)=1,问mp+nq(x>=0,y>=0)最大不能表示的数,和不能表示的数的个数。#include<cstdio>using namespace std;typedef long long ll;int main(){ ll a,b; while(~scanf("%lld%lld",&a,&am...原创 2019-06-16 11:06:05 · 1629 阅读 · 0 评论 -
H - Pairs Forming LCM 求对于x,lcm(a,b)=x,这样的对数的个数。
H - Pairs Forming LCMGCD&&LCMa=p1 ^ a1 * p2 ^ a2 *…*pn ^ anb=p1 ^ b1 * p2 ^ b2 *…*pn ^ bngcd(a,b)=p1 ^ min(a1,b1) * p2 ^ min(a2,b2) *…*pn ^ min(an,bn)lcm(a,b)=p1 ^ max(a1,b1) * p2 ^ max...原创 2019-06-11 16:55:08 · 498 阅读 · 0 评论 -
HDU6706(huntian oy 公式+杜教筛板子)
题目先放题解的截图下面就是我自己写的啦 几乎一样#include<cstdio>#include<tr1/unordered_map>using namespace std;using namespace std::tr1;typedef long long ll;const int N=5e6+5,mod=1e9+7,Max=2147483647...原创 2019-08-28 11:23:18 · 196 阅读 · 0 评论 -
51nod(2026 Gcd and Lcm 巧妙的积性函数+杜教筛)
题目f(x)是一个积性函数。#include<cstdio>#include<tr1/unordered_map>using namespace std;using namespace std::tr1;typedef long long ll;const int N=1e6+5,mod=1e9+7,Max=2147483647,inv2=50000000...原创 2019-08-28 09:59:36 · 220 阅读 · 0 评论 -
51nod(1220 约数之和 推式子反演+线性筛+杜教筛)
题目1.学会线性筛出 d(i):i 约数的个数 以及 dd(i):i 所有约数之和。学习链接2.慢慢推式子 需要用到 一个小结论(挺好yy证明的)+反演+积累技巧把(比如dd前缀和可以转化成别的式子进而分块求)学习链接第三个式子是反演得到的。最后一个橙点点有一丢丢小错误sigma(q=[1,[n/d]).我还是自己再次按照上述过程首推一下(由于我的式子太丑啦T_T放在代码后面留着自己...原创 2019-08-27 16:00:07 · 224 阅读 · 0 评论 -
51nod(1238 最小公倍数之和 V3 杜教筛)
题目http://jiruyi910387714.is-programmer.com/posts/195270.htmlhttps://www.cnblogs.com/abclzr/p/6770714.html#include<cstdio>#include<iostream>#include<map>using namespace std;typ...原创 2019-08-26 22:01:56 · 203 阅读 · 0 评论 -
51nod(1237最大公约数之和 V3 反演+杜教筛)
题目这里需要反演一波。。。最后一个式子就可以整除分块+杜教筛。。。#include<cstdio>#include<map>using namespace std;typedef long long ll;const int N=5e6+5,mod=1e9+7,inv=500000004;int is[N+5],prime[N+5];int phi[N+...原创 2019-08-26 19:00:59 · 210 阅读 · 0 评论 -
P4213(杜教筛模板)
题目#include<cstdio>#include<tr1/unordered_map>using namespace std;using namespace std::tr1;typedef long long ll;typedef unsigned long long ull;const int N=5e6,Max=2147483647;templa...原创 2019-08-26 12:14:18 · 183 阅读 · 0 评论