数论
three trees
三木无林,却以成森
展开
-
hdu 4473 Exam 思维
分析对于(a∗b)∣x(a*b) \mid x(a∗b)∣x,我们可以看成a∗b∗c=xa*b*c=xa∗b∗c=x所以题目所求可以变成(a∗b∗c<=n)(a*b*c<=n)(a∗b∗c<=n)的对数我们考虑a<=b<=ca<=b<=ca<=b<=c枚举a,ba,ba,b,那么ccc最大为na⋅b\frac{n}{a\cdot b}a...原创 2019-11-10 21:24:51 · 118 阅读 · 0 评论 -
codeforces 571A Lengthening Sticks 组合数学 插板法
题意给我们四个数,a,b,c,la,b,c,la,b,c,l问:a′=a+x1b′=b+x2c′=c+x3x1+x2+x3<=la'=a+x_1\quad b'=b+x_2\quad c'=c+x_3\quad x_1+x_2+x_3<=la′=a+x1b′=b+x2c′=c+x3x1+x2+x3<=l且a′,b′,c′a',b',c'a′,b′,c′可以组成三角...原创 2019-11-06 21:17:42 · 228 阅读 · 0 评论 -
hdu 5514 2015 icpc 沈阳现场 F Frogs
欧拉函数做法有n个青蛙,m个石头,石头围成一圈,编号是(0~m-1)第i个青蛙可以一次走aia_iai个石头现在求所有可以被走过的石头的编号之和假设i号青蛙走了x次,停在t位置,有:x⋅ai≡t(modm)x \cdot a_i \equiv t \pmod mx⋅ai≡t(modm)式子拆开我们有:x⋅ai−y⋅m=tx \cdot a_i - y \cdot m = tx⋅a...原创 2019-11-03 20:17:59 · 196 阅读 · 0 评论 -
hdu 6265 Master of Phi 积性函数
推式子ans=∑d∣nϕ(d)nd\begin{aligned}ans=\sum_{d \mid n}\phi(d)\frac{n}{d}\end{aligned}ans=d∣n∑ϕ(d)dn题目给了唯一分解:n=p1q1∗……∗pmqmn=p_1^{q_1}*……*p_m^{q_m}n=p1q1∗……∗pmqm,所以我们枚举piqip_i^{q_i}piqian...原创 2019-10-22 22:22:29 · 97 阅读 · 0 评论 -
佩尔方程
佩尔方程对于一个二元二次不定方程,形如x2−d∗y2=1x^{2}-d*y^{2}=1x2−d∗y2=1若n为正整数,则这个方程被称为佩尔方程若n为完全平方数,方程只有解(±1,0)(\pm1,0)(±1,0)简单证明,方程可以写成:x2−(dy)2=1x^{2}-(\sqrt{d}y)^{2}=1x2−(dy)2=1这个就是两个完全平方数之差,我们观察发现只有x2=1&y=0...原创 2019-10-22 19:53:51 · 638 阅读 · 0 评论 -
hdu 4746 Mophues 质因子数量小于p
推式子设:num[x]num[x]num[x]表示xxx唯一分解后所有质因子指数之和ans=∑i=1n∑j=1m[num[gcd(i,j)]<=p]\begin{aligned}ans=\sum_{i=1}^{n}\sum_{j=1}^{m}[num[\gcd(i,j)]<=p]\end{aligned}ans=i=1∑nj=1∑m[num[gcd(i,j)]<...原创 2019-10-15 21:58:37 · 93 阅读 · 0 评论 -
洛谷--P5221 Product
本题可反演,也可用欧拉函数过题欧拉函数ans=∏i=1N∏j=1Nlcm(i,j)gcd(i,j)\begin{aligned}ans =\prod_{i=1}^{N}\prod_{j=1}^{N}\frac{lcm(i,j)}{\gcd(i,j)}\end{aligned}ans=i=1∏Nj=1∏Ngcd(i,j)lcm(i,j)首先我们将lcm(i,j)lcm(i,...原创 2019-09-27 22:41:30 · 113 阅读 · 0 评论 -
洛谷--P4213--杜教筛模板(欧拉函数,莫比乌斯函数)
题目求:ans1=∑i=1nϕ(i)ans2=∑i=2nμ(i)\begin{aligned}ans1=\sum_{i=1}^{n}\phi(i)\\ans2=\sum_{i=2}^{n}\mu(i)\end{aligned}ans1=i=1∑nϕ(i)ans2=i=2∑nμ(i)由于n<=231−1n <= 2^{31}-1n<=231−1,所以正常的O(n...原创 2019-09-28 19:52:13 · 178 阅读 · 0 评论 -
洛谷--P3768 简单的数学题--杜教筛
先贴个代码#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;template <typename T>void out(T x) { cout << x << endl; }const int N...原创 2019-09-28 21:55:49 · 99 阅读 · 0 评论 -
中国剩余定理——学习
模数互质有同余方程组:{x≡d1(modp1)x≡d2(modp2)x≡d3(modp3)\left\{\begin{aligned}x \equiv d_1 \pmod {p_1}\\x \equiv d_2 \pmod {p_2}\\x \equiv d_3 \pmod {p_3}\end{aligned}\right.⎩⎪⎨⎪⎧x≡d1(modp1)x≡d2(mo...原创 2019-09-30 20:12:38 · 111 阅读 · 0 评论 -
gym-101982B 2018-2019 ACM-ICPC Pacific Northwest 反演
推式子ans=∑i=ab∑j=cd[gcd(i,j)==1]\begin{aligned}ans=\sum_{i=a}^{b}\sum_{j=c}^{d}[\gcd(i,j)==1]\end{aligned}ans=i=a∑bj=c∑d[gcd(i,j)==1]我们给(a,b)(a,b)(a,b)拆成(1,b)−(1,a−1)(1,b)-(1,a-1)(1,b)−(1,a−1...原创 2019-10-06 22:03:11 · 121 阅读 · 0 评论 -
gym-101982C 2018-2019 ACM-ICPC Pacific Northwest n个数中任意k个数之积
分析首先给了我们n个题目,每个题目都有一个等级,现在要求从k个等级中分别选出一道题,问方案数我们可以想到,去统计每个等级中题目的个数,然后方案数为从所有等级中任选k个等级,并从每个选中的等级中选一道题。假设最终有n个等级,则最终答案为n个数中任意k个数的乘积如果k=1k=1k=1,我们会发现方案数是所有等级中题目数量之和如果k=3k=3k=3,我们有:∑i=1n∑j=i+1n∑k=j+...原创 2019-10-06 22:26:02 · 200 阅读 · 0 评论 -
洛谷-P3172 选数 杜教筛+莫比乌斯反演
题意从[L,H][L,H][L,H]选n个数,且这个n个数的gcd\gcdgcd为k的方案数推式子假设n=3ans=∑x=LH∑y=LH∑z=LH[gcd(x,y,z)==k]\begin{aligned}ans=\sum_{x=L}^{H}\sum_{y=L}^{H}\sum_{z=L}^{H}[\gcd(x,y,z)==k]\end{aligned}ans=x=L∑Hy...原创 2019-10-08 20:57:31 · 100 阅读 · 0 评论 -
约数个数&&约数和 线性筛--板子
约数个数const int N = 1e6 + 5;int sum[N], d[N], prime[N], tot;bool mark[N];void get_d(){ mark[0] = mark[1] = true; tot = 0; sum[1] = d[1] = 1; for(int i = 2; i < N; i ++) { ...原创 2019-10-09 20:09:16 · 176 阅读 · 0 评论 -
洛谷P3327-约数个数和-莫比乌斯反演+约数个数函数前缀和
推式子ans=∑i=1N∑j=1Md(ij)\begin{aligned}ans=\sum_{i=1}^{N}\sum_{j=1}^{M}d(ij)\end{aligned}ans=i=1∑Nj=1∑Md(ij)现在有个式子:d(ij)=∑x∣i∑y∣j[gcd(x,y)==1]\begin{aligned}d(ij)=\sum_{x \mid i}\sum_{y \...原创 2019-10-09 21:15:09 · 278 阅读 · 0 评论 -
莫比乌斯学习小结
前置知识数论分块,莫比乌斯函数,和式的相关推导(积累)数论分块这个我写过一篇博客,下面是链接https://blog.csdn.net/qq_43101466/article/details/100999784莫比乌斯函数μ(n)={1n为1(−1)kk为n的质因子个数0n存在非平方因子{\displaystyle \mu (n)={\begin{cases}1 \quad n为...原创 2019-09-27 19:42:41 · 151 阅读 · 0 评论 -
洛谷--P2158 仪杖队--欧拉函数
这题可以用莫比乌斯反演来写,相关式子:ans=∑i=1n−1∑j=1n−1[gcd(i,j)==1]+2(n>=2)ans=\sum_{i=1}^{n-1}\sum_{j=1}^{n-1}[\gcd(i,j)==1]+2\quad(n >=2)ans=∑i=1n−1∑j=1n−1[gcd(i,j)==1]+2(n>=2)当n=1,ans=0当n=1,ans=0当n=1,...原创 2019-09-27 18:15:22 · 130 阅读 · 0 评论 -
唯一分解定理
简介唯一分解定理是数论中重要的思想之一。简述就是一个大于一的整数N,可以由他的素因子唯一构成。证明用到了反证法。数学假设N是大于一的正整数,我们有:N=q1^p1*q2^p2*……*qn^pnq1……qn是N的质因数有如下性质: 1. 约数个数 = (p1+1)*(p2+1)*……*(pn+1) 2. 约数和 = (1+q1+……+q1^p1)*(1+q2+……+q2^p2)*…...原创 2018-11-26 19:30:43 · 278 阅读 · 0 评论 -
c++中位运算的一些总结
理解一般的我们求a^b可以跑一个for或者pow函数,这种在遇到大的数据范围很浪费时间或者存不下。这时候就可以使用快速幂进行求解快速幂快速幂使用了二进制的思想,假如b=11 二进制 1011 快速幂的作用就是给1与1之间的距离缩短了int p_pow(int a,int b,int mod){ int c=1; while(b) { if(b&1)c=(c*a)%...原创 2018-11-26 21:10:39 · 166 阅读 · 0 评论 -
中国剩余定理(Gym - 102091H)
中国剩余定理(Gym - 102091H)中国剩余定理又名孙子定理。其本质是求解同余方程组。前置知识:同余式,扩展欧几里得删除线格式#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;ll prime[4], r[4];ll exg...原创 2019-03-25 18:23:57 · 383 阅读 · 1 评论 -
二分递归求等比数列前n项和
2019河北省大学生程序设计竞赛(重现赛)B我们假设有一个等比数列: a[n] = q ^ n那么 S[n] = q ^ 1 + q ^ 2 + q ^ 3 …… + q ^ n正常情况我们有 S[n] = q * (1 - q ^ n) / (1 - q)若我们需要求的是 S[n] % mod 且 (1 - q)与mod不互质,那么上面的公式便会有问题(逆元无法确定)这时候我们发现:...原创 2019-05-25 18:31:25 · 1307 阅读 · 0 评论 -
二次剩余-学习
二次剩余形如: x2≡d(modp){x^2} \equiv d \pmod px2≡d(modp) ,d为模p意义下的二次剩余本文讨论的是p为质数的二次剩余在数学中有个勒让德符号,判断是否是二次剩余(np)={1 (n是模p意义下的二次剩余)−1 (n是模p意义下的非二次剩余)0 (n≡0(modp)) (\dfrac{n}{p})=\left\{...原创 2019-08-19 11:15:09 · 221 阅读 · 0 评论 -
数论分块——学习
牛客-数论之神(引子)bzoj 1257 1968 2956原创 2019-09-18 21:57:18 · 133 阅读 · 0 评论 -
洛谷-P2257 YY的GCD
洛谷-P2257分析本题需要前置知识:数论分块,莫比乌斯反演数论分块,可看https://blog.csdn.net/qq_43101466/article/details/100999784先介绍一下莫比乌斯函数μ(n)={1n为1(−1)kk为n的质因子个数0n存在非平方因子{\displaystyle \mu (n)={\begin{cases}1 \quad n为1\\(...原创 2019-09-20 18:45:24 · 149 阅读 · 0 评论 -
洛谷-P4450双亲数
题意求 ans=∑i=1A∑j=1B[gcd(i,j)==d]ans = \sum_{i = 1}^{A}\sum_{j = 1}^{B}[\gcd(i, j) == d]ans=∑i=1A∑j=1B[gcd(i,j)==d]分析我们发现酷似洛谷P2257,题题解链接:https://blog.csdn.net/qq_43101466/article/details/101...原创 2019-09-22 21:36:20 · 157 阅读 · 0 评论 -
hdu 6428 Calculate(狄利克雷卷积 + 莫比乌斯反演)
开始推式子ans=∑i=1A∑j=1B∑k=1Cϕ(gcd(i,j2,k3))\begin{aligned}ans = \sum_{i = 1}^{A}\sum_{j = 1}^{B}\sum_{k = 1}^{C}\phi(\gcd(i, j^{2}, k^{3}))\end{aligned} ans=i=1∑Aj=1∑Bk=1∑Cϕ(gcd(i,j2,k3))我们令gc...原创 2019-09-24 18:22:51 · 144 阅读 · 0 评论 -
hdu 1695 GCD
开始推式子ans=∑x=ab∑y=cd[gcd(x,y)=k]\begin{aligned}ans = \sum_{x=a}^{b}\sum_{y=c}^{d}[\gcd(x,y)=k]\end{aligned}ans=x=a∑by=c∑d[gcd(x,y)=k]还是老套路,我们令f(k)=∑x=ab∑y=cd[gcd(x,y)=k]f(k)=\sum_{x=a}^{b}...原创 2019-09-24 21:58:27 · 89 阅读 · 0 评论 -
洛谷-P1829 Crash的数字表格--积性函数
推式子ans=∑i=1N∑j=1Mlcm(i,j)=∑i=1N∑j=1Mi∗jgcd(i,j)\begin{aligned}ans = \sum_{i=1}^{N}\sum_{j=1}^{M}lcm(i,j) =\sum_{i=1}^{N}\sum_{j=1}^{M}\frac{i*j}{\gcd(i,j)}\end{aligned}ans=i=1∑Nj=1∑Mlcm(i,j)...原创 2019-09-25 21:00:44 · 199 阅读 · 1 评论 -
卢卡斯定理---板子
先贴个代码,这个是p是素数的情况#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;const int N = 2e5 + 5;ll fast_pow(ll a, ll b, ll p) { ll c = 1; while(b) {if(...原创 2019-09-25 23:39:13 · 221 阅读 · 0 评论 -
乘法逆元
组合数递推求阶乘的逆元适用N<=1e6 inv[0] = fac[0] = 1; for(int i = 1; i < N; i ++)//如果N大于mod,那只要跑到mod-1就行,因为后面的%mod==0 fac[i] = fac[i - 1] * i % mod; inv[N - 1] = fast_pow(fac[N - 1], mod...原创 2019-09-26 11:23:16 · 98 阅读 · 0 评论 -
裴蜀定理
两个未知量先有两未知量a,b,根据裴蜀定理我们有:存在x,y满足ax+by=gcd(a,b)ax+by=gcd(a,b)ax+by=gcd(a,b)相关证明略,类似辗转相除然后这个方程可以用扩展欧几里得去求解这个式子我们变换一下:gcd(a,b)=by+(a%b+b∗⌊ab⌋)x\gcd(a,b)=by+(a\%b+b*\lfloor\frac{a}{b}\rfloor)xgcd(a...原创 2019-09-26 18:34:44 · 306 阅读 · 0 评论 -
素数筛
素数素数即质数,只能被自身和一整除。 一般暴力找素数,O(n*2)或者O(n*sqrt(n)) 这样耗费时间太多,所以我们用筛法来处理素数筛素数筛通过将非素数筛掉来找素数,是重要的数论工具一般筛法一般筛法接近O(n)的复杂度,但比快速筛慢bool mark[Max];//标记是否为素数int ss[Max];//将素数存入数组void prime()//筛法{ ...原创 2018-08-30 20:54:45 · 241 阅读 · 0 评论