数论
文章平均质量分 84
算法核心内容之一——数论
爱寂寞的时光
这个作者很懒,什么都没留下…
展开
-
数论函数——杜教筛
数论函数——杜教筛杜教筛是做什么的呢,用来计算某个数论函数f(x)f(x)f(x)的前缀和S(n)=∑i=1nf(x)S(n) =\sum_{i=1}^n f(x)S(n)=∑i=1nf(x)。前置知识数论函数狄利克雷卷积莫比乌斯反演核心方法设要求的积性数论函数和前缀和分别为f(x)f(x)f(x)和S(n)=∑i=1nf(x)S(n) =\sum_{i=1}^n f(x)S(n)=∑i=1nf(x)。在考虑一个适当的积性数论函数g(x)g(x)g(x),我们现在讨论两个函数的卷积的前原创 2021-08-31 13:22:15 · 197 阅读 · 0 评论 -
欧拉计划
欧拉计划PECNP1根据容斥原理,我们求解3的倍数和与5的倍数和相加,然后在减去既是3的倍数又是5的倍数。我们设数xxx为既是3的倍数又是5的倍数,所以得到同余方程组:x≡0mod 3x≡0mod 5x \equiv 0 \mod 3 \\x \equiv 0 \mod 5 \\x≡0mod3x≡0mod5使用CRT求解。得到余子向量{5,3}\{5,3\}{5,3},逆向量{2,2}\{2,2\}{2,2},求哈达玛积为{5,3}∘{2,2}={10,6}\{5,3\} \cir原创 2021-05-10 22:20:20 · 106 阅读 · 0 评论 -
题解:Problem G. Matrix
题解:Problem G. MatrixThe 14th Jilin Provincial Collegiate Programming ContestChangchun University of Science and Technology, September 27, 2020题目大意给定一个零矩阵,枚举所有的点对(i,j)(i,j)(i,j),其中i,ji,ji,j均为正整数,对于每一个点对(i,j)(i,j)(i,j),翻转一次满足要求的点(m,n)(m,n)(m,n),其中mmm是iii原创 2021-05-06 19:55:34 · 334 阅读 · 0 评论 -
两数平方和
两数平方和LeetCode 633双指针class Solution{public: bool judgeSquareSum(int c) { ll low = 0; ll high = (ll)sqrt(c); while (low <= high) { ll vc = low * low + high * high; if (vc < c)原创 2021-04-30 19:56:37 · 285 阅读 · 1 评论 -
序列的GCD的生成集
序列的GCD的生成集一个序列的GCD的生成集为:存在一个正整数集合SSS,该集合的GCD生成集为:Sgcd={a∣a=gcd(x1,x2,…,xn)∣n>0,x1,x2,…,xn∈S}S_{\gcd} = \{ a | a = \gcd(x_{1},x_{2},\ldots,x_{n}) | n >0, x_{1},x_{2},\ldots,x_{n} \in S\}Sgcd={a∣a=gcd(x1,x2,…,xn)∣n>0,x1,x2,…,xn∈S}即在集合原创 2021-04-04 16:25:37 · 403 阅读 · 0 评论 -
莫比乌斯反演
莫比乌斯反演莫比乌斯反演是数论中的重要内容。对于一些函数 ,如果很难直接求出它的值,而容易求出其倍数和或约数和 ,那么可以通过莫比乌斯反演简化运算,求得函数的值。前置知识整除定理⌊abc⌋=⌊abc⌋=⌊⌊ab⌋c⌋\lfloor \frac{a}{bc} \rfloor = \lfloor \frac{a}{bc} \rfloor = \lfloor \frac{\lfloor \frac{a}{b} \rfloor}{c} \rfloor⌊bca⌋=⌊bca⌋=⌊c⌊ba⌋⌋商定原创 2021-04-02 23:15:59 · 178 阅读 · 0 评论 -
狄利克雷卷积
狄利克雷卷积狄利克雷卷积是一种定义在两个数论函数函数上的运算,狄利克雷卷积有两种形式:(f∗g)(n)=∑d∣nf(d)g(nd)(f * g)(n) = \sum_{d \mid n}f(d)g(\frac{n}{d})(f∗g)(n)=d∣n∑f(d)g(dn)或者:(f∗g)(n)=∑xy=nf(x)g(y)(f * g)(n) = \sum_{xy = n}f(x)g(y)(f∗g)(n)=xy=n∑f(x)g(y)积性函数为了以后讨论方便,定义如下数论函数:单位函数:原创 2021-04-02 21:07:54 · 1851 阅读 · 2 评论 -
Leetcode 1015. 可被 K 整除的最小整数
Leetcode 1015. 可被 K 整除的最小整数假设这个数是kkk,如果KKK满足要求,那么必定存在等式nK=111⋯111nK=111 \cdots 111nK=111⋯111,我们的思路是如何求解这个nnn。在这里,我们令n=n0×1+n1×10+n2×100+…++nc×10cn=n_{0} \times 1 + n_{1} \times 10 + n_{2} \times 100 + \ldots + + n_{c} \times 10^{c}n=n0×1+n1×10+n2×100+原创 2021-02-09 15:50:30 · 365 阅读 · 1 评论 -
两个互质整数的线性组合问题
P3951 [NOIP2017 提高组] 小凯的疑惑 / [蓝桥杯 2013 省] 买不到的数目——线性同余方程P3951题解设能表示的数为KKK,则有ax+by=Kax+by=Kax+by=K,对两边同时取bbb的模,则axmod b=Kmod bax \mod b=K \mod baxmodb=Kmodb,即为线性同余方程ax≡Kmod bax \equiv K \mod bax≡Kmodb。又因为gcd(a,b)=1\gcd(a,b) = 1gcd(a,b)=1,因此该线性同余方程一定有原创 2021-02-24 11:04:12 · 2550 阅读 · 0 评论 -
模9的性质
模9的性质此文章讨论一下模9的性质。数码相加的值LeetCode 258 各位相加我们把一个整数拆分成十进制的形式(假设为333位):K=a1×1000+a2×100+a3×10+a3×1K = a_{1} \times 1000 + a_{2} \times 100 + a_{3} \times 10 + a_{3} \times 1K=a1×1000+a2×100+a3×10+a3×1对两边取999的模:Kmod 9=(a1×1000+a2×100+a3×10+a4×1)mo原创 2021-02-26 00:07:19 · 2100 阅读 · 0 评论 -
数论——乘法逆元
数论——乘法逆元乘法逆元乘法逆元,一般用于求:abmod p\frac{a}{b} \mod pbamodp的值,因为模的除法运算没有对:abmod p=amod pbmod pmod p\frac{a}{b} \mod p = \frac{a \mod p}{b \mod p} \mod pbamodp=bmodpamodpmodp的直接定义(也就是上式不成立)。因此我们就要求bbb在模ppp下的逆b−1mod pb^{-1} \mod pb−1modp,之后进行乘法原创 2021-02-24 13:04:40 · 352 阅读 · 0 评论 -
中国剩余定理模板
中国剩余定理模板要解决中国剩余定理的问题,分以下几个步骤:会写扩展欧几里得算法会求逆元线性累加例题P1495 【模板】中国剩余定理(CRT)/曹冲养猪代码#include <bits/stdc++.h>using namespace std;typedef long long ll;ll arr[15];ll with[15];ll exgcd(ll a, ll b, ll &x, ll &y){ if (b == 0) {原创 2021-02-08 19:37:38 · 104 阅读 · 0 评论 -
最大公约数、最小公倍数与算术基本定理
最大公约数、最小公倍数与算术基本定理最大公因数和最小公倍数与素数分解式有什么联系呢?举个例子:我们尝试分解样例中的提到的一组数12,15(最大公约数和最小公倍数分别是3和60):12=22⋅3115=31⋅5112 = 2^{2} \cdot 3^{1} \\15 = 3^{1} \cdot 5^{1}12=22⋅3115=31⋅51为了方便下面的讨论,尽管12没有素因子5,15没有素因子2,但我们还是要把非共有的素因子写成0次幂的形式:12=22⋅31⋅5015=20⋅31⋅5112 =原创 2021-02-08 10:18:07 · 1024 阅读 · 0 评论 -
数论——质数筛法
数论-质数筛法朴素筛法枚举素数即可,判断一个数xxx是不是素数,从222开始到x\sqrt{x}x枚举他的约数即可。因为一个合数xxx可以写成是两个约数的乘积mn=xmn=xmn=x,假设m>xm \gt \sqrt{x}m>x,那么n<xn \lt \sqrt{x}n<x,因此,对于任意的合数xxx,必定存在一个约数k≤xk \leq \sqrt{x}k≤x。class Solution {public: bool isPrime(int x) {原创 2021-02-05 20:45:18 · 131 阅读 · 0 评论 -
数论算法导论
文章目录前言一、数论基本概念1.1 整除性与约数1.1 素数和合数1.2 除法定理、余数和等模1.3 公约数与最大公约数二、使用步骤1.引入库2.读入数据总结前言数论是算法里面及其重要的组成部分,在竞赛中使用数论,通常能写出O(1)高效率级别的算法。数论包括基本概念、欧几里得算法、模运算、倍数与模、中国余数定理、幂与模、RSA算法、素数与素数测试、因数分解等核心内容。一、数论基本概念1.1 整除性与约数定义:符号“d | a”(读作d整除a)的含义是,存在某个整数k,有a=kd存在。特别的任何原创 2021-01-19 15:59:03 · 1159 阅读 · 0 评论