数论训练
ACM数学
逃夭丶
你是我荒唐青春里唯一的认真
展开
-
因数和以及因数个数和问题
首先因数的定义: 因数是指整数 a 除以整数 b ( b≠0 ) 的商正好是整数而没有余数,我们就说 b 是 a 的因数。问题一:区间因数和描述:求解 [L,R] 区间内所有的因数之和,R <= maxx(一般<=1e6)提前打表,求谁带谁 //求解[1,maxx]每个数的因数和 for(int i=1;i<=maxx;i++){ for(int j=1;j<=maxx/i;j++){ num[i*j] += i; } } for(int i=2;i&原创 2020-06-13 21:56:50 · 717 阅读 · 0 评论 -
卡特兰数学习笔记
一、简介卡特兰数数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中的数列,其前几项为:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, …二、原理令h(0) = 1,h(1) = 1,catalan数满足递推式:h(n)=h(0)∗h(n−1)+h(1)∗h(n−2)+…+h(n−1)∗h(0)(n>原创 2020-05-12 21:52:10 · 201 阅读 · 0 评论 -
高斯消元的应用
高斯消元是用来解决线性方程组的,也就是可以解决能够转换成线性方程组的题目:n维圆心求解问题 我们知道已知 n 维球上的 n+1 个点,是可以求解 n 维球心的坐标的。假设,已知圆上(2维球)三点:(a1,b1),(a2,b2),(a3,b3)(a_1,b_1),(a_2,b_2),(a_3,b_3)(a1,b1),(a2,b2),(a3,b3)那么我们可以得到方程组:{(...原创 2020-01-17 18:33:47 · 515 阅读 · 0 评论 -
高斯消元求解异或线性方程组
与求解普通线性方程组的步骤基本一致,如果矩阵的系数是1或者0,所以不用除以行最大值,直接异或即可。唯一解的话就是,a[i][n+1]。void gauss(){ for(int i=1;i<=n;i++){ int k=i; for(int j=i+1;j<=n;j++){ if(fabs(a[j][i])>fa...原创 2020-01-15 16:57:57 · 857 阅读 · 0 评论 -
高斯消元求解矩阵的逆(gauss)
基本理论就是线性代数中的:若A是可逆矩阵,(A,E) ~ (E,B),那么B就是A的逆矩阵。模板题目:P4783 【模板】矩阵求逆#include<cstdio>#include<iostream>#include<string>#include<algorithm>#include<cmath>#include<...原创 2020-01-14 21:34:59 · 747 阅读 · 0 评论 -
高斯消元
1.高斯消元法 高斯消元是求解线性方程组的一种算法,它可以用来求解矩阵的秩,以及求可逆矩阵的逆矩阵。它通过消除未知数来将原始线性系统转化为另一个简单的等价线性系统(详情见线性代数)。它的实质就是通过矩阵的初等行变化,将线性方程组的增广矩阵转化为行阶梯矩阵。以下面的方程组为例,它的步骤为:{2x+y+z=16x+2y+z=−1−2x+2y+z=7\begin{cases} 2x + y ...原创 2020-01-14 20:09:45 · 441 阅读 · 0 评论 -
POJ 1012 Joseph
传送门:https://vjudge.net/problem/11573/originThe Joseph’s problem is notoriously known. For those who are not familiar with the original problem: from among n people, numbered 1, 2, . . ., n, standing ...原创 2019-12-01 01:26:01 · 97 阅读 · 0 评论 -
平面三个点系列
如何判断三点共线题目:已知平面的三个点,p1(x1,y1),p2(x2,y2),p3(x3,y3),判断他们是否共线方法一:判断直线(p1—>p2)和直线(p1—>p3)的斜率是否相同,即(y2-y1)/(x2-x1) 是否等于(y3-y1)/(x3-x1),也就是:(y2-y1) * (x3-x1) - (y3-y1) * (x2-x1) 是否等于零。方法二:用行列式求解...原创 2019-11-24 00:43:01 · 172 阅读 · 0 评论 -
约瑟夫问题
问题描述约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知 n 个人(以编号1,2,3 … n 分别表示)围坐在一张圆桌周围。从编号为 k 的人开始报数,数到 m 的那个人出圈;他的下一个人又从 1 开始报数,数到 m 的那个人又出圈;依次规律重复下去,知道剩余最后一个胜利者。一、 k==1 的约瑟夫问题例如:有10个人围成一圈进行此游戏,每个人编号为 1-10 。若规定数到 3 的人出圈。则...原创 2019-10-26 14:08:37 · 1033 阅读 · 0 评论 -
POJ 1704 Georgia and Bob (阶梯博弈变式)
DescriptionGeorgia and Bob decide to play a self-invented game. They draw a row of grids on paper, number the grids from left to right by 1, 2, 3, …, and place N chessmen on different grids, as shown...原创 2019-10-23 22:56:22 · 158 阅读 · 0 评论 -
POJ 2142 The Balance (拓展欧几里得)
DescriptionMs. Iyo Kiffa-Australis has a balance and only two kinds of weights to measure a dose of medicine. For example, to measure 200mg of aspirin using 300mg weights and 700mg weights, she can p...原创 2019-10-13 00:12:34 · 210 阅读 · 0 评论 -
POJ 1026 Cipher(置换)
传送门:http://poj.org/problem?id=1026 DescriptionBob and Alice started to use a brand-new encoding scheme. Surprisingly it is not a Public Key Cryptosystem, but their encoding and decoding is based on ...原创 2019-08-26 23:53:50 · 135 阅读 · 0 评论 -
POJ 3358 Period of an Infinite Binary Expansion
传送门:http://poj.org/problem?id=3358DescriptionLet {x} = 0.a1a2a3… be the binary representation of the fractional part of a rational number z. Suppose that {x} is periodic then, we can write{x} = 0.a...原创 2019-09-12 21:15:25 · 640 阅读 · 0 评论 -
阶乘的因子个数
求n!中有多少个质因子p10!中质因子2的个数:10!1234567891010!中有因子21的数010101010110!中有因子22的数000100010010!中有因子23的数0000000100因此10!中质因子2的个数有5+2+1=8个。仔细思考,n!中有(n/p +...原创 2019-09-16 19:03:53 · 1231 阅读 · 3 评论 -
最大公约数 + 最大公倍数
两个数的gcd:辗转相除法lcm: a*b / gcd(a,b)int gcd(int a,int b){ return b==0 ? a : gcd(b,a%b);}int lcm(int a,int b){ int g = gcd(a,b); return a*b / g; }快速gcdint qgcd(int a, int b){ if(a==0) return ...原创 2019-09-16 21:47:25 · 189 阅读 · 0 评论 -
fzu1753 Another Easy Problem(多组C(n,m)求解gcd)
传送门:http://acm.fzu.edu.cn/problem.php?pid=1753Problem Description小TT最近学习了高斯消元法解方程组,现在他的问题来了,如果是以下的方程,那么应该如何解呢?C(n1,m1)==0 (mod M)C(n2,m2)==0 (mod M)C(n3,m3)==0 (mod M)…C(nk,mk)==0 (mod M)小TT希望...原创 2019-09-16 21:55:33 · 164 阅读 · 0 评论 -
POJ 3101 Astronomy(分子最小公倍数+圆周追击)
DescriptionThere are n planets in the planetary system of star X. They orbit star X in circular orbits located in the same plane. Their tangent velocities are constant. Directions of orbiting of all ...原创 2019-09-19 17:31:29 · 169 阅读 · 0 评论 -
扩展欧几里得、线性同余方程、中国剩余定理
拓展欧几里得欧几里得算法(辗转相除法):用于计算两个整数的最大公约数,其原理依赖于:定理:gcd(a,b) = gcd(b,a%b)证明:设 a = kb + r,其中 k 和 r 分别为 a 除以 b 得到的商和余数。则有 r = a - kb 成立。设 d 为 a 和 b 的一个公约数,那么有 r = a - kb,得 d 也是 r 得一个约数。因此 d 是 b 和 r 的...原创 2019-09-24 20:19:39 · 233 阅读 · 0 评论 -
中国剩余定理
模板:x = ∑i=1npi∗Nqi∗[(Nqi)−1]qi\sum_{i=1}^n p_i * \frac N{q_i} * [(\frac N{q_i})^{-1}]_{q_i}∑i=1npi∗qiN∗[(qiN)−1]qiint p[maxn],q[maxn],n;int exgcd(int a,int b,int &x,int &y){ if(...原创 2019-09-24 23:59:15 · 89 阅读 · 0 评论 -
拓展中国剩余定理
本文参考自:https://www.cnblogs.com/zwfymqz/p/8425731.html我们知道,中国剩余定理是用来解同余方程组f(x)={x≡c1(mod m1)x≡c2(mod m2)……………x≡cr(mod mr) f(x)=\left\{\begin{aligned}x ≡ c_1(mod\ m_1)\\x ≡ c_2(mod\ m...原创 2019-09-27 21:53:33 · 90 阅读 · 0 评论 -
POJ 1061 + POJ 1006
POJ 1061 青蛙的约会 http://poj.org/problem?id=1061Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳...原创 2019-10-09 16:24:14 · 113 阅读 · 0 评论 -
POJ 2891 + POJ 2115
DescriptionElina is reading a book written by Rujia Liu, which introduces a strange way to express non-negative integers. The way is described as following:Choose k different positive integers a1, a...原创 2019-10-10 22:27:19 · 143 阅读 · 0 评论 -
法雷级数
定义法雷级数,是指每一行从0/1开始,以1/1结尾,其他数自左至右将所有的真分数按增加顺序排列;第n行是由所有分母小于或等于n的真分数组成,我们称为n阶法雷级数(法里数列)。如下表:F10/1 1/12F20/1 1/2 1/13F30/1 1/3 2/3 1/14F40/1 1/4 1/3 1/2 2/3 3/4 1/15F50/1...原创 2019-09-11 15:27:51 · 609 阅读 · 1 评论 -
POJ 2478 Farey Sequence
传送门:http://poj.org/problem?id=2478DescriptionThe Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbers a/b with 0 < a < b <= n and gcd(a,b) = 1 arran...原创 2019-09-09 23:04:31 · 82 阅读 · 1 评论 -
拓展欧几里得算法
1.拓展欧几里得适用于解决:给定两个非零整数 a 和 b,求一组整数解( x,y ),使得 ax + by = gcd(a , b)成立,其中 gcd(a,b) 表示 a,b 的最大公因数。求解ax+by=gcd(a,b)的一组特解x0,y0,并返回gcd(a,b)。代码实现:一般:int exgcd(int a,int b,int &x,int &y){ if(b==...原创 2019-05-09 15:31:43 · 189 阅读 · 0 评论 -
快速幂+矩阵快速幂
一、快速幂不取模:LL quick_pow(LL a,LL b,LL mod){ LL ans=1; while(b){ if(b&1) ans = ans*a; a = a*a; b = b>>1; } return ans;}取模:LL quick_pow(LL a,LL b,LL mod){ LL ans=1; while(b){ ...原创 2019-04-22 21:59:56 · 1008 阅读 · 0 评论 -
POJ 3590 The shuffle Problem
DescriptionAny case of shuffling of n cards can be described with a permutation of 1 to n. Thus there are totally n! cases of shuffling. Now suppose there are 5 cards, and a case of shuffle is <5,...原创 2019-08-28 22:29:02 · 121 阅读 · 0 评论 -
POJ 3128 Leonardo's Notebook(置换的幂与分裂)
传送门:http://poj.org/problem?id=3128Description— I just bought Leonardo’s secret notebook! Rare object collector Stan Ucker was really agitated but his friend, special investigator Sarah Kepticwas uni...原创 2019-08-27 19:12:45 · 169 阅读 · 0 评论 -
POJ 1721 CARDS(置换群,整幂运算)
传送门:http://poj.org/problem?id=1721DescriptionAlice and Bob have a set of N cards labelled with numbers 1 … N (so that no two cards have the same label) and a shuffle machine. We assume that N is an ...原创 2019-08-27 17:10:53 · 176 阅读 · 0 评论 -
置换,置换的运算
置换的概念还是比较好理解的,《组合数学》里面有讲。对于置换的幂运算大家可以参考一下潘震皓的那篇《置换群快速幂运算研究与探讨》,写的很好。结论一:一个长度为 L 的循环 T,L 是 k 的倍数,则 Tk 是k个循环的乘积,每个循环分别是循环 T 中下标 i mod k= 0,1,2…的元素按顺序的连接。结论二:一个长度为 L 的循环T,gcd(L,k)=1,则 Tk 是一个循环,与循环 T 不...原创 2019-08-26 16:46:41 · 1348 阅读 · 0 评论 -
Burnside引理和polay计数学习笔记
本文参考自:https://blog.csdn.net/lyc1635566ty/article/details/52545355 首先由一个 2 * 2的矩阵里染色问题引出: 在一个 2 * 2的矩阵中染色,问有多少种染色方法,旋转后相同的算一种。 显然穷举的话,有以上种,但是不难发现,(2,3,4,5)是同一种,(6,7)是同一种,(8,9,10,11)是一种,(12,13,14...原创 2019-08-26 10:56:17 · 246 阅读 · 0 评论 -
高精度计算
高精度 有的可以直接用JAVA写……本文参考于:https://blog.csdn.net/u013615904/article/details/43373601高精度加法:传入参数约定:传入参数均为string类型,返回值为string类型算法思想:倒置相加再还原。时间复杂度:O(N)const int maxn = 201000;string add(string a,strin...原创 2019-08-22 22:15:52 · 98 阅读 · 0 评论 -
A game
链接:https://ac.nowcoder.com/acm/problem/15867来源:牛客网题目描述 Tony and Macle are good friends. One day they joined a birthday party together. Fortunately, they got the opportunity to have dinner with the...原创 2019-08-17 17:23:06 · 148 阅读 · 0 评论 -
组合数
***一、关于 n! 的一个问题 ***求解 n! 中有几个质因子n! 中有 (n/p + n/p2 + n/p3+……)个质因子p,其中除法均为向下整除int cal(int n,int p){ int ans = 0; while(n){ ans += n / p; //累加n/p^k n /= p; //相当于分母多乘一个p } return ans;}利用算法何...原创 2019-05-09 17:55:02 · 143 阅读 · 0 评论 -
质数的判定
质数的判定试除法bool is_prime(int n) //O(√n){ if(n<2) return false; for(int i=2;i*i<=n;i++) if(n%i==0) return false; return true;}Miller-Robbin算法有极小的概率把合数错误判定为质数,但是多次判断合起来的错误...原创 2019-08-29 23:30:33 · 298 阅读 · 3 评论 -
阶与原根学习笔记
本博客参考于:https://www.cnblogs.com/cytus/p/9296661.html阶 阶的定义:设 m > 1,且gcd(a,m) = 1,那么使得 ar ≡ 1(mod m) 成立最小的正整数 r 称为,a 对模 m 的阶,记作 δm(a)。相关定理:定理一: 若 m > 1,并且gcd(a,m) = 1,又满足 an ≡ 1 (mod m),则 δ...原创 2019-09-08 19:38:50 · 418 阅读 · 0 评论 -
互质和欧拉函数
互质 ∀\forall∀a,b ∈ N,若 gcd(a,b)==1,则称 a,b 互质。欧拉函数 1 ~ N 中与 N 互质的数的个数被称作欧拉函数,记作 ϕ(N)。 若在算术直奔定理中,N = p1c1 p2c2 …… pmcn,则: ϕ(N) = N * p1−1p1{{p1-1} \over {p1}}p1p1−1 * p2−1p2{{p2-1} \over {p2}}...原创 2019-09-05 23:42:12 · 663 阅读 · 1 评论 -
POJ 2429 GCD & LCM Inverse(Miller-Robbin算法+Pollard Rho算法)
传送门:http://poj.org/problem?id=2429DescriptionGiven two positive integers a and b, we can easily calculate the greatest common divisor (GCD) and the least common multiple (LCM) of a and b. But what a...原创 2019-09-04 23:23:16 · 215 阅读 · 0 评论 -
反素数
反素数引理一: 1 ~ N中最大的反质数,就是1 ~ N中约数最多的数里最小的一个。引理二: 若把最大的反质数 x ,质因分解: x = p1c1 * p2c2 * …… * pkck 若p1 ≤ p1 ≤ …… ≤ pk,那么一定满足:c1 ≥ c2 ≥ …… ≥ ck 证明略。 已知N的值,所以先打一个素数表。 所以直接DFS,枚举每一个质数的指数,且满足引...原创 2019-09-01 22:57:06 · 322 阅读 · 3 评论 -
区间素数筛法
本文参考于:https://www.cnblogs.com/nowandforever/p/4515612.html类似问法: 给定整数a和b,请问区间[a,b)内有多少素数? a < b <= 1012 b - a<= 106 因为b以内的合数的最小质因数一定不是超过sqrt(b),如果有sqrt(b)以内的素数表的话,就可以把筛选法用在[a,b)上了,先分别...原创 2019-09-01 16:59:57 · 278 阅读 · 0 评论