数论
文章平均质量分 69
柃歌
夏天的海边有冰淇淋口味的海风
展开
-
AcWing 1351. 密码锁(枚举,容斥原理)
【题目描述】农夫约翰的奶牛们总是偷偷的逃出他的农场,去外面为非作歹。农夫约翰为了防止它们私自逃离农场,购买了一个密码锁,以此阻止奶牛们打开农场大门。约翰知道他的奶牛们都非常聪明,因此他想要确保它们不能通过简单的尝试一些密码组合,就轻易的将锁打开。锁具上有三个密码拨盘,每个拨盘上的数字为1∼N1\sim N1∼N,其中111和NNN相邻(因为拨盘是圆形的)。一共有两种可以打开密码锁的数字组合,一组是约翰设置的密码组合,一组是制造商设置的密码组合。这种锁具有一定的容错性,只要三个表盘上的数字与任意一原创 2022-05-07 14:06:18 · 368 阅读 · 1 评论 -
【蓝桥杯算法练习题】数论
一、AcWing 1246. 等差数列【题目描述】数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中NNN个整数。现在给出这NNN个整数,小明想知道包含这NNN个整数的最短的等差数列有几项?【输入格式】输入的第一行包含一个整数NNN。第二行包含NNN个整数A1,A2,…,ANA_1,A_2,\dots ,A_NA1,A2,…,AN(注意A1∼ANA_1\sim A_NA1∼AN并不一定是按等差数列中的顺序给出)。【输出格式】输出一个整数表示答案原创 2022-03-28 21:56:41 · 1281 阅读 · 0 评论 -
【CF1629B】GCD Arrays(GCD)
【题目描述】考虑一下数组aaa,范围是[l,r][l,r][l,r]。例如,[3,7][3,7][3,7],数组aaa就是[3,4,5,6,7][3,4,5,6,7][3,4,5,6,7]。给出l,r,kl,r,kl,r,k,询问gcd(a)gcd(a)gcd(a)是否能在最多kkk次如下操作以后比111大?在aaa数组中选择两个数。删除这两个数。将这两个数的乘积放回数组aaa。【输入格式】第一行包含一个整数t(1≤t≤105)t(1\le t\le 10^5)t(1≤t≤105),表示数原创 2022-03-14 22:53:57 · 319 阅读 · 0 评论 -
洛谷P1114 “非常男女”计划(前缀和)
【题目描述】近来,初一年的XXX小朋友致力于研究班上同学的配对问题(别想太多,仅是舞伴),通过各种推理和实验,他掌握了大量的实战经验。例如,据他观察,身高相近的人似乎比较合得来。万圣节来临之际,XXX准备在学校策划一次大型的“非常男女”配对活动。对于这次活动的参与者,XXX有自己独特的选择方式。他希望能选择男女人数相等且身高都很接近的一些人。这种选择方式实现起来很简单。他让学校的所有人按照身高排成一排,然后从中选出连续的若干个人,使得这些人中男女人数相等。为了使活动更热闹,XXX当然希望他能选出的人越多原创 2022-03-13 09:50:15 · 300 阅读 · 0 评论 -
洛谷P2671 求和(前缀和,推公式)
【题目描述】一条狭长的纸带被均匀划分出了nnn个格子,格子编号从111到nnn。每个格子上都染了一种颜色coloricolor_icolori(用[1,m][1,m][1,m]当中的一个整数表示),并且写了一个数字numberinumber_inumberi。定义一种特殊的三元组:(x,y,z)(x,y,z)(x,y,z),其中x,y,zx,y,zx,y,z都代表纸带上格子的编号,这里的三元组要求满足以下两个条件:xyzxyzxyz是整数,x<y<z,y−x=z−yx<y&l原创 2022-03-13 09:26:29 · 417 阅读 · 1 评论 -
洛谷P1469 找筷子(位运算)
【题目描述】经过一段时间的紧张筹备,电脑小组的“RP 餐厅”终于开业了,这天,经理LXC接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘手的问题:筷子!CX小朋友找出了餐厅中所有的筷子,但遗憾的是这些筷子长短不一,而我们都知道筷子需要长度一样的才能组成一双,更麻烦的是CX找出来的这些筷子数量为奇数,但是巧合的是,这些筷子中只有一只筷子是落单的,其余都成双,善良的你,可以帮CX找出这只落单的筷子的长度吗?【输入格式】第一行是一个整数,表示筷子的数量nnn原创 2022-03-08 22:34:35 · 230 阅读 · 0 评论 -
AcWing 2058. 笨拙的手指(枚举,进位制,哈希)
【题目描述】奶牛贝茜正在学习如何在不同进制之间转换数字。但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔。每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错。例如,如果她将数字141414转换为二进制数,那么正确的结果应为111011101110,但她可能会写下011001100110或111111111111。贝茜不会额外添加或删除数字,但是可能会由于写错数字的原因,写下包含前导000的数字。给定贝茜将数字NNN转换为二进制数字以及三进制数字的结果,请确定NNN的正确原创 2022-03-03 14:46:46 · 218 阅读 · 0 评论 -
洛谷P1249 最大乘积(贪心,高精度)
【题目描述】一个正整数一般可以分为几个互不相同的自然数的和,如3=1+23=1+23=1+2,4=1+34=1+34=1+3,5=1+4=2+35=1+4=2+35=1+4=2+3,6=1+5=2+46=1+5=2+46=1+5=2+4。现在你的任务是将指定的正整数nnn分解成若干个互不相同的自然数的和,且使这些自然数的乘积最大。【输入格式】只一个正整数nnn,(3≤n≤10000)(3 \leq n \leq 10000)(3≤n≤10000)。【输出格式】第一行是分解方案,相邻的数之间用一个原创 2021-11-18 10:18:29 · 1516 阅读 · 1 评论 -
【模板题】几种常见的Nim游戏(博弈论)
【题目描述】给定nnn堆石子,两位玩家轮流操作,每次操作可以从任意一堆石子中拿走任意数量的石子(可以拿完,但不能不拿),最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。【输入格式】第一行包含整数nnn。第二行包含nnn个数字,其中第iii个数字表示第iii堆石子的数量。【输出格式】如果先手方必胜,则输出Yes。否则,输出No。【数据范围】1≤n≤1051≤n≤10^51≤n≤1051≤每堆石子数≤1091≤每堆石子数≤10^91≤每堆石子数≤109【输入样例】原创 2021-10-26 20:37:11 · 8517 阅读 · 1 评论 -
【模板题】容斥原理
【题目描述】给定一个整数nnn和mmm个不同的质数p1,p2,…,pmp_1,p_2,…,p_mp1,p2,…,pm。请你求出1∼n1∼n1∼n中能被p1,p2,…,pmp_1,p_2,…,p_mp1,p2,…,pm中的至少一个数整除的整数有多少个。【输入格式】第一行包含整数nnn和mmm。第二行包含mmm个质数。【输出格式】输出一个整数,表示满足条件的整数的个数。【数据范围】1≤m≤161≤m≤161≤m≤161≤n,pi≤1091≤n,p_i≤10^91≤n,pi≤10原创 2021-10-26 17:34:42 · 231 阅读 · 0 评论 -
【模板题】卡特兰数(AcWing 889. 满足条件的01序列)
【题目描述】给定nnn个000和nnn个111,它们将按照某种顺序排成长度为2n2n2n的序列,求它们能排列成的所有序列中,能够满足任意前缀序列中000的个数都不少于111的个数的序列有多少个。输出的答案对109+710^9+7109+7取模。【输入格式】共一行,包含整数nnn。【输出格式】共一行,包含一个整数,表示答案。【数据范围】1≤n≤1051≤n≤10^51≤n≤105【输入样例】3【输出样例】5【分析】将010101序列置于坐标系中,起点定于原点。000表示向右走原创 2021-10-26 15:24:05 · 217 阅读 · 1 评论 -
【模板题】求组合数 / Lucas定理
前言组合是数学的重要概念之一。从nnn个不同元素中,任取m(m≤n)m(m≤n)m(m≤n)个元素并成一组,叫做从nnn个不同元素中取出mmm个元素的一个组合;从nnn个不同元素中取出m(m≤n)m(m≤n)m(m≤n)个元素的所有组合的个数,叫做从nnn个不同元素中取出mmm个元素的组合数,记为CnmC_{n}^{m}Cnm。计算组合数的一些基本公式:Cnm=n!m!(n−m)!,Cn0=1C_{n}^{m}=\frac {n!}{m!(n-m)!},C_{n}^{0}=1Cnm=m!(n−原创 2021-10-26 10:09:45 · 315 阅读 · 0 评论 -
【模板题】高斯消元解(异或)线性方程组
一、高斯消元解线性方程组【题目描述】输入一个包含nnn个方程nnn个未知数的线性方程组。方程组中的系数为实数。求解这个方程组。一个包含mmm个方程nnn个未知数的线性方程组示例如下:{a11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2…am1x1+am2x2+⋯+amnxn=bm\left\{\begin{aligned}&a_{11}x_1+a_{12}x_2+\dots +a_{1n}x_n=b_1 \\&a_{21}x_1+a_{原创 2021-10-25 22:07:37 · 1591 阅读 · 2 评论 -
AcWing 1381. 阶乘 / 洛谷P1134 [USACO3.2]阶乘问题(数论,同余,因式分解)
【题目描述】NNN的阶乘(记作N!N!N!)是指从111到NNN(包括111和NNN)的所有整数的乘积。阶乘运算的结果往往都非常的大。现在,给定数字NNN,请你求出N!N!N!的最右边的非零数字是多少。例如:5!=1×2×3×4×5=1205!=1×2×3×4×5=1205!=1×2×3×4×5=120,所以5!5!5!的最右边的非零数字是222。【输入格式】共一行,包含一个整数NNN。【输出格式】输出一个整数,表示N!N!N!的最右边的非零数字。【数据范围】AcWing:1≤N≤100原创 2021-10-24 18:20:12 · 223 阅读 · 0 评论 -
AcWing 1346. 回文平方(进位制,双指针)
【题目描述】回文数是指数字从前往后读和从后往前读都相同的数字。例如数字123211232112321就是典型的回文数字。现在给定你一个整数BBB,请你判断1∼3001\sim 3001∼300之间的所有整数中,有哪些整数的平方转化为BBB进制后,其BBB进制表示是回文数字。【输入格式】一个整数BBB。【输出格式】每行包含两个在BBB进制下表示的数字。第一个表示满足平方值转化为BBB进制后是回文数字那个数,第二个数表示第一个数的平方。所有满足条件的数字按从小到大顺序依次输出。【数据范围】原创 2021-10-24 15:13:38 · 115 阅读 · 0 评论 -
【模板题】扩展中国剩余定理
【题目描述】给定2n2n2n个整数a1,a2,∼,ana_1,a_2,\sim ,a_na1,a2,∼,an和m1,m2,∼,mnm_1,m_2,\sim ,m_nm1,m2,∼,mn,求一个最小的非负整数xxx,满足∀i∈[1,n],x≡mi(mod ai)∀i∈[1,n],x≡m_i(mod\ a_i)∀i∈[1,n],x≡mi(mod ai)。【输入格式】第111行包含整数nnn。第2∼n+12\sim n+12∼n+1行:每i+1i+1i+1行包含两个整数原创 2021-10-20 17:10:09 · 148 阅读 · 0 评论 -
【模板题】扩展欧几里得算法与线性同余方程
【题目描述】给定nnn对正整数ai,bia_i,b_iai,bi,对于每对数,求出一组xi,yix_i,y_ixi,yi,使其满足ai×xi+bi×yi=gcd(ai,bi)a_i\times x_i+b_i\times y_i=gcd(a_i,b_i)ai×xi+bi×yi=gcd(ai,bi)。【输入格式】第一行包含整数nnn。接下来nnn行,每行包含两个整数ai,bia_i,b_iai,bi。【输出格式】输出共nnn行,对于每组ai,bia_i,b_iai,bi原创 2021-10-20 14:41:10 · 177 阅读 · 0 评论 -
洛谷P1154 奶牛分厩(数论)
【题目描述】农夫约翰有N(1≤N≤5000)N(1 \leq N \leq 5000)N(1≤N≤5000)头奶牛,每头奶牛都有一个唯一的不同于其它奶牛的编号sis_isi ,所有的奶牛都睡在一个有KKK个厩的谷仓中,厩的编号为000到K−1K−1K−1。每头奶牛都知道自己该睡在哪一个厩中,因为约翰教会了它们做除法,Si mod KS_i \bmod KSimodK的值就是第iii头奶牛所睡的厩的编号。给出一组奶牛的编号,确定最小的KKK使得没有两头或两头以上的奶牛睡在同一厩中。【输入格式】第一原创 2021-10-18 19:58:57 · 887 阅读 · 0 评论 -
【模板题】快速幂(求逆元)
什么是快速幂?快速幂能够快速求出ab % pa^b\ \% \ pab % p的问题,时间复杂度为O(logb)O(logb)O(logb),对于nnn组数据,那么时间复杂度为O(n∗logb)O(n∗logb)O(n∗logb)先来看一下朴素求解ab % pa^b\ \% \ pab % p的代码,基本思路是对于nnn组数据,分别循环bbb次求出ab % pa^b\ \% \ pab %&nb原创 2021-10-18 15:30:24 · 256 阅读 · 0 评论 -
【模板题】欧拉函数与线性筛求欧拉函数
欧拉函数是什么?定义:对于正整数nnn,欧拉函数是小于或等于nnn的正整数中与nnn互质的数的个数,记作φ(n)\varphi (n)φ(n).φ(1)=1\varphi (1)=1φ(1)=1如何求NNN的欧拉值?首先, 欧拉函数是一个积性函数,当m,nm,nm,n互质时,φ(mn)=φ(m)∗φ(n)\varphi (mn)=\varphi (m)∗\varphi (n)φ(mn)=φ(m)∗φ(n)根据唯一分解定理知n=p1a1∗p2a2∗…∗pxaxn=p_{1}^{a_1}∗p_{2}^原创 2021-10-18 12:40:50 · 227 阅读 · 0 评论 -
【模板题】最大公约数
【题目描述】给定nnn对正整数ai,bia_i,b_iai,bi,请你求出每对数的最大公约数。【输入格式】第一行包含整数nnn。接下来nnn行,每行包含一个整数对ai,bia_i,b_iai,bi。【输出格式】输出共nnn行,每行输出一个整数对的最大公约数。【数据范围】1≤n≤1051≤n≤10^51≤n≤1051≤ai,bi≤2×1091≤a_i,b_i≤2×10^91≤ai,bi≤2×109【输入样例】23 64 6【输出样例】32gcdgcdgcd不用原创 2021-10-17 17:32:49 · 202 阅读 · 0 评论 -
【模板题】约数个数、约数之和
【题目描述】给定nnn个正整数aia_iai,请你输出这些数的乘积的约数个数(之和),答案对109+710^9+7109+7取模。【输入格式】第一行包含整数nnn。接下来nnn行,每行包含一个整数aia_iai。【输出格式】输出一个整数,表示所给正整数的乘积的约数个数(之和),答案需对109+710^9+7109+7取模。【数据范围】1≤n≤1001≤n≤1001≤n≤1001≤ai≤2×1091≤a_i≤2×10^91≤ai≤2×109【输入样例】3268【输出样例】原创 2021-10-17 16:31:32 · 343 阅读 · 0 评论 -
【模板题】试除法求约数
【题目描述】给定nnn个正整数aia_iai,对于每个整数aia_iai,请你按照从小到大的顺序输出它的所有约数。【输入格式】第一行包含整数nnn。接下来nnn行,每行包含一个整数aia_iai。【输出格式】输出共nnn行,其中第iii行输出第iii个整数aia_iai的所有约数。【数据范围】1≤n≤1001≤n≤1001≤n≤1002≤ai≤2×1092≤a_i≤2×10^92≤ai≤2×109【输入样例】268【输出样例】1 2 3 6 1 2 4 8 试原创 2021-10-17 14:02:45 · 157 阅读 · 0 评论 -
【模板题】筛质数(埃氏筛法、线性筛法)
【题目描述】给定一个正整数nnn,请你求出1∼n1\sim n1∼n中质数的个数。【输入格式】共一行,包含整数nnn。【输出格式】共一行,包含一个整数,表示1∼n1\sim n1∼n中质数的个数。【数据范围】1≤n≤1061≤n≤10^61≤n≤106【输入样例】8【输出样例】4①朴素筛法O(nlogn)O(nlogn)O(nlogn)void get_primes(){ for (int i = 2; i <= n; i++) { if (!st[i]) pr原创 2021-10-17 13:44:08 · 227 阅读 · 0 评论 -
【模板题】分解质因数
【题目描述】给定nnn个正整数aia_iai,将每个数分解质因数,并按照质因数从小到大的顺序输出每个质因数的底数和指数。【输入格式】第一行包含整数nnn。接下来nnn行,每行包含一个正整数aia_iai。【输出格式】对于每个正整数aia_iai,按照从小到大的顺序输出其分解质因数后,每个质因数的底数和指数,每个底数和指数占一行。每个正整数的质因数全部输出完毕后,输出一个空行。【数据范围】1≤n≤1001≤n≤1001≤n≤1001≤ai≤2×1091≤a_i≤2×10^91≤ai原创 2021-10-17 11:13:58 · 373 阅读 · 0 评论 -
【模板题】试除法判定质数
【题目描述】给定nnn个正整数aia_iai,判定每个数是否是质数。【输入格式】第一行包含整数nnn。接下来nnn行,每行包含一个正整数aia_iai。【输出格式】共nnn行,其中第iii行输出第iii个正整数aia_iai是否为质数,是则输出Yes,否则输出No。【数据范围】1≤n≤1001≤n≤1001≤n≤1001≤ai≤231−11≤a_i≤2^{31}−11≤ai≤231−1【输入样例】226【输出样例】YesNo【分析】质数的定义:在大于111的整原创 2021-10-17 10:34:34 · 158 阅读 · 0 评论 -
洛谷P1045 麦森数(数论,高精度,快速幂)
【题目描述】形如2P−12^{P}-12P−1的素数称为麦森数,这时PPP一定也是个素数。但反过来不一定,即如果PPP是个素数,2P−12^{P}-12P−1不一定也是素数。到199819981998年底,人们已找到了373737个麦森数。最大的一个是P=3021377P=3021377P=3021377,它有909526909526909526位。麦森数有许多重要应用,它与完全数密切相关。任务:从文件中输入P(1000<P<3100000)P(1000<P<3100000)P(原创 2021-10-16 21:43:01 · 160 阅读 · 0 评论 -
洛谷P1072 Hankson 的趣味题(数论,gcd)
【题目描述】Hanks博士是BT(Bio-Tech,生物技术)领域的知名专家,他的儿子名叫Hankson。现在,刚刚放学回家的Hankson正在思考一个有趣的问题。今天在课堂上,老师讲解了如何求两个正整数c1c_1c1和 c2c_2c2的最大公约数和最小公倍数。现在Hankson认为自己已经熟练地掌握了这些知识,他开始思考一个“求公约数”和“求公倍数”之类问题的“逆问题”,这个问题是这样的:已知正整数a0,a1,b0,b1a_0,a_1,b_0,b_1a0,a1,b0,b1 ,设某未知正整数x原创 2021-10-11 12:49:25 · 160 阅读 · 0 评论 -
洛谷P3868 猜数字(中国剩余定理)
【题目描述】现有两组数字,每组k个,第一组中的数字分别为:a1,a2,…,ak表示,第二组中的数字分别用b1,b2,…,bk表示。其中第二组中的数字是两两互素的。求最小的非负整数n,满足对于任意的i,n - ai能被bi整除。【输入格式】输入数据的第一行是一个整数k,(1≤k≤10)。接下来有两行,第一行是:a1,a2,…,ak,第二行是b1,b2,…,bk【输出格式】输出所求的整数n。【说明】所有数据中,第一组数字的绝对值不超过109(可能为负数),第二组数字均为不超过6000的正整数,且第原创 2021-03-11 21:38:40 · 293 阅读 · 0 评论 -
洛谷P1414 又是毕业季II(数论,递推,gcd)
【题目描述】老师给每位同学评了一个能力值。从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约数)最大。但因为节目太多了,而且每个节目需要的人数又不知道。老师想要知道所有情况下能达到的最大默契程度是多少。PS:一个数的最大公约数即本身。【输入格式】第一行一个正整数n。第二行为n个空格隔开的正整数,表示每个学生的能力值。【输出格式】总共n行,第i行为k=i情况下的最大默契程度。【输入样例】41 2 3 4【输出样例】4211解题思路:k个数的公约数含义就是这k个数均含有原创 2021-03-11 21:24:48 · 199 阅读 · 0 评论 -
洛谷P1096 Hanoi 双塔问题(数论,高精度)
【题目描述】给定A、B、C三根足够长的细柱,在A柱上放有2n个中间有孔的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的,现要将这些圆盘移到C柱上,在移动过程中可放在B柱上暂存。要求:(1)每次只能移动一个圆盘;(2)A、B、C三根细柱上的圆盘都要保持上小下大的顺序;设An为2n个圆盘完成上述任务所需的最少移动次数,对于输入的n,输出An【输入格式】一个正整数n,表示在A柱上放有2n个圆盘。【输出格式】一个正整数, 为完成上述任务所需的最少移动次数An。【输原创 2021-03-10 20:56:21 · 1709 阅读 · 0 评论 -
洛谷P1029 最大公约数和最小公倍数问题(数论,gcd)
【题目描述】输入两个正整数x,y,求出满足下列条件的P,Q的个数:P,Q是正整数。要求P,Q以x为最大公约数,以y为最小公倍数。试求:满足条件的所有可能的P,Q的个数。【输入格式】一行两个正整数x,y【输出格式】一行一个数,表示求出满足条件的P,Q的个数。【输入样例】3 60【输出样例】4【说明/提示】P,Q有4种:3,6015,1212,1560,3解题思路:两个数最大公约数与最小公倍数的乘积即为这两个数的乘积,枚举xy的所有因数1到sqrt(xy),如果满足gcd(原创 2021-03-10 20:49:34 · 284 阅读 · 0 评论