数论
C202044zxy
这个作者很懒,什么都没留下…
展开
-
「LibreOJ β Round #5」最小倍数
一、题目点此看题二、解法这题肯定是勒让德定理的题了,对于每个质数我们可以算出来一个满足条件的nnn,因为质数之间是独立的,然后答案就是这些nnn中的最大值了(注意至少是111)对于某一个质数ppp怎么求他的nnn呢?我们可以先二分这个nnn,然后用勒让德定理求解(求出的是有多少个因子ppp)。但是这样做是O(nlog2n)O(n\log^2n)O(nlog2n)的,无法通过此题。考虑勒让德定理的本质,其实就是把数转成ppp进制然后算贡献,举个栗子,比如对于三进制下的100001000010000原创 2020-10-25 11:28:16 · 226 阅读 · 0 评论 -
[NOI2018]屠龙勇士
https://www.luogu.com.cn/problem/P4774原创 2020-10-06 20:08:51 · 267 阅读 · 0 评论 -
CF1333F Kate and imperfection
https://www.luogu.com.cn/problem/CF1333F原创 2020-10-05 14:27:59 · 145 阅读 · 0 评论 -
CF1106F Lunar New Year and a Recursive Sequence
一、题目点此看题二、解法数论算法大杂烩,iii了iii了虽然我们不知道fkf_kfk是多少,但是我们知道fnf_nfn和fkf_kfk的关系,记fkf_kfk的指数为111,发现我们对于上述递推式很容易算出fnf_nfn的指数,用矩阵乘法(别告诉我这个你不会),算出来的指数假设是nnn,那么(p=998244353p=998244353p=998244353):fn=fknmod pf_n=f_k^n\mod pfn=fknmodp还是很难,这意味着我们要解一个高次剩余方程(我以前原创 2020-10-05 10:29:03 · 129 阅读 · 0 评论 -
HeHe
一、题目点此看题原创 2020-09-03 20:33:10 · 140 阅读 · 0 评论 -
Calculation 2
一、题目求nnn以内和nnn不互质的数的和。二、解法原创 2020-09-03 20:13:56 · 164 阅读 · 0 评论 -
[模板] 扩展BSGS
一、题目点此看题二、解法求解关于xxx的方程:yx=zmod py^x=z\mod pyx=zmodp主要就是处理yyy和ppp不互质的情况,我们把这个方程重写形式:yx+bp=zy^x+bp=zyx+bp=z此时我们把方程全部同时除以d=gcd(y,p)d=\gcd(y,p)d=gcd(y,p):ydyx−1+bpd=zd\frac{y}{d}y^{x-1}+b\frac{p}{d}=\frac{z}{d}dyyx−1+bdp=dz前面的就可以当做系数了,如果ddd除不尽zzz就无解原创 2020-05-27 15:49:44 · 183 阅读 · 0 评论 -
[学习笔记] Pell方程
感谢这两位巨佬,部分思路和图片来源于他们的启发:IBN5100The-Pines-of-Star是什么?Pell\text{Pell}Pell方程主要用来解决下面形式的方程:x2−dy2=1x^2-dy^2=1x2−dy2=1其中ddd是正数且不是完全平方数,若x,yx,yx,y都为整数的解称为这个方程的解,其中x+ydx+y\sqrt dx+yd最小的那组解就称为Pell\text{Pell}Pell方程的基本解,我们要解决两个问题:求出基本解和用它扩展出所有解。基本解?本文结论大多不给出原创 2020-05-22 11:13:15 · 1038 阅读 · 0 评论 -
CF830C Bamboo Partition
一、题目点此看题二、解法首先有一个等价变化:(ai−1)%d+1=ai−ai−1d×d(a_i-1)\% d+1=a_i-\frac{a_i-1}{d}\times d(ai−1)%d+1=ai−dai−1×d我们再来重写一下题目表达式:∑d−ai+ai−1d×d≤k\sum d-a_i+\frac{a_i-1}{d}\times d\leq k∑d−ai+dai−1×d≤kd(n+∑ai−1d)≤k+∑aid(n+\sum \frac{a_i-1}{d})\leq k+\sum a原创 2020-05-21 16:04:19 · 213 阅读 · 0 评论 -
HDU 2620 Ice Rain
一、题目点此看题二、解法首先有一个对于模数的等价替换:k%i=k−ki×ik\%i=k-\frac{k}{i}\times ik%i=k−ik×i那么原问题就变成了:∑k−ki×i\sum k-\frac{k}{i}\times i∑k−ik×i如果你学过数论分块的话应该就可以秒了。#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int原创 2020-05-21 15:23:49 · 148 阅读 · 0 评论 -
生日礼物
一、题目点此看题二、解法考虑把nnn质因数分解,那么我们只需要考虑单个质因数的情况即可,不难发现对于一个质数ppp,次数有cntcntcnt,有2cnt+12cnt+12cnt+1种的选取方案,两者之间必须有一个选到pcntp^{cnt}pcnt,然后我们使用乘法原理,把每个质因数的方案乘起来就行了,时间复杂度O(n)O(\sqrt n)O(n)。#include <cstdio&...原创 2020-04-18 18:07:58 · 293 阅读 · 0 评论 -
CF919E Congruence Equation
一、题目点此看题二、解法发现ppp很小,考虑和ppp有关的算法。首先想到的肯定是费马小定理吧,我们可以枚举axa^xax的周期[1,p−1][1,p-1][1,p−1],设前面的系数为nnn,那么nnn是可以被算出来的:n=b×inv(ax)mod pn=b\times inv(a^x)\mod pn=b×inv(ax)modp然后nnn还有一个限制:n=xmod p−1n=x\mo...原创 2020-02-07 10:23:53 · 229 阅读 · 0 评论 -
[BZOJ 4173]数学
一、题目二 、解法又到了欢乐推式子时间,先推那个判断式(本文所有除法均为整除):m%k+n%k≥km\%k+n\%k\geq km%k+n%k≥km−mkk+n−nkk≥km-\frac{m}{k}k+n-\frac{n}{k}k\geq km−kmk+n−knk≥kn+mk−mk−nk≥1\frac{n+m}{k}-\frac{m}{k}-\frac{n}{k}\geq1kn+m−...原创 2020-01-29 13:45:39 · 248 阅读 · 0 评论 -
阿凡达(类欧几里得算法)
一、题目二、解法由于nnn很大,但是操作数很小,且一开始没有初值,很容易想到动态开点,时间复杂度O(nlogn)O(n\log n)O(nlogn)。剩下的问题是如何计算一个修改段内的和,注意到(i−l+1)⋅x%y=(i−l+1)⋅x+(i−l+1)⋅xy(i-l+1)\cdot x\% y=(i-l+1)\cdot x+\frac{(i-l+1)\cdot x}{y}(i−l+1)⋅...原创 2020-01-23 17:17:28 · 325 阅读 · 0 评论 -
gcd
一、题目原创 2019-11-25 16:19:24 · 172 阅读 · 1 评论 -
The Luckiest number
一、题目给定一个nnn,求最小的长度LLL,使888...888...888...(LLL个888)是nnn的倍数。1≤n≤2e91\leq n\leq 2e91≤n≤2e9二、解法尝试用数学方法表示 888...888...888...,发现 888...=89×(10y−1)888...=\frac{8}{9}\times(10^y-1)888...=98×(10y−1)所以 n∣...原创 2019-11-25 16:06:09 · 400 阅读 · 0 评论 -
GCD
一、题目给定n,kn,kn,k,求有多少个(a,b)(a,b)(a,b),gcd(n−a,n)×gcd(n−b,n)=nk,(1≤a,b≤n)gcd(n-a, n)\times gcd(n-b,n)=n^k,(1\leq a,b\leq n)gcd(n−a,n)×gcd(n−b,n)=nk,(1≤a,b≤n)1≤n,k≤109,gcd(0,n)=n1\leq n,k\leq 10^9,gcd(...原创 2019-11-24 13:22:56 · 150 阅读 · 0 评论 -
Period of an Infinite Binary Expansion
一、题目题目描述给定一个分数 qp\frac{q}{p}pq ,求最小循环节的起始位置和最小循环节的长度。二、解法先把p,qp,qp,q除以最大公约数,以满足互质。考虑二进制小数的转化方式,一直乘二每次再模分母,得到的余数便是当前数位的值。设xxx是循环节开始的位置,yyy是循环节结束的位置,则2x=2ymod p2^x=2^y\mod p2x=2ymodp。尝试对原式变形,2x...原创 2019-11-24 12:38:16 · 216 阅读 · 0 评论 -
M斐波那契数列
一、题目二、解法可以把这个变形的斐波那契理解为指数上的正常斐波那契,分别做两次矩阵加速,第一次初始值为1,01,01,0,第二次初始值为0,10,10,1,把两次的aF(n),bF(n)a^{F(n)},b^{F(n)}aF(n),bF(n)求乘积即可。现在的问题是F(n)F(n)F(n)太大会爆,考虑到模数是一个质数1e9+71e9+71e9+7,利用欧拉定理aφ(n)=1a^{\var...原创 2019-11-24 12:14:41 · 364 阅读 · 0 评论 -
Power Tower
一、题目点此看题二、解法好像是一个欧拉降幂版题,但仔细想想时间复杂度是O(n2)O(n^2)O(n2)。考虑φ\varphiφ的下降速度,有一个结论,当n>2n>2n>2时,φ(n)\varphi(n)φ(n)是偶数。证明可以考虑更相减损术,gcd(i,n)=gcd(n−i,n)\gcd(i,n)=\gcd(n-i,n)gcd(i,n)=gcd(n−i,n),所以i...原创 2019-11-23 20:12:58 · 331 阅读 · 0 评论 -
上帝与集合的正确用法
一、题目点此看题二、解法可以运用欧拉降幂,ac=ac%φ(b)+φ(b)mod ba^c=a^{c\%\varphi(b)+\varphi(b)}\mod bac=ac%φ(b)+φ(b)modb。然后我们可以dfsdfsdfs,每次把φ(p)\varphi(p)φ(p)带进去搜索,知道p=1p=1p=1回溯。#include <cstdio>const int MAXN...原创 2019-11-23 10:56:28 · 148 阅读 · 0 评论 -
欧拉定理及其证明
欧拉定理若(a,b)=1(a,b)=1(a,b)=1,则aφ(b)=1mod ba^{\varphi(b)}=1\mod baφ(b)=1modb证明考虑一个x1,x2,x3......xφ(b)x_1,x_2,x_3......x_{\varphi(b)}x1,x2,x3......xφ(b)和bbb互质的数列,我们把数列的每一项都乘上aaa,然后得到一个新的数列p1,p2,p3...原创 2019-11-23 10:19:25 · 797 阅读 · 0 评论 -
Happy 2006
一、题目给定m,km,km,k,找到和mmm互质的第kkk个数。1≤m≤106,1≤k≤1081\leq m\leq 10^6,1\leq k\leq 10^81≤m≤106,1≤k≤108。二、解法0x01 二分答案,容斥检查[1,x][1,x][1,x]中与mmm互质的数的个数是单增的,可以考虑二分这个xxx,找到最小的xxx使得[1,x][1,x][1,x]中的与mmm互质数的个数...原创 2019-11-23 08:16:58 · 173 阅读 · 0 评论 -
鸽子的糖
这道题很有价值,可我真的不想写博客了。直接转载原创 2019-10-19 13:42:23 · 161 阅读 · 0 评论 -
[ZJOI2016]小星星
一、题目点此看题二、解法0x01 暴力不多说,直接刚全排,然后再暴力检查,O(完全过不了)O(完全过不了)O(完全过不了)。0x02 dp考虑用壮压dpdpdp对暴力优化,设dp[i][j][s]dp[i][j][s]dp[i][j][s]为树上iii节点映射到图上jjj节点,iii的子树(含iii本身)映射到图上,状压成二进制sss的方案数,用树形dpdpdp的方式思考,则能写出下列...原创 2019-10-06 19:40:02 · 178 阅读 · 0 评论 -
【模板】乘法逆元2
普及选手又来做数论题啦!一、题目点此看题二、解法这道题一看到就想暴力搞,然后TTT了。我讲一种很巧妙的的解法,设s[i]=∏j=ina[j]s[i]=\prod_{j=i}^{n} a[j]s[i]=∏j=ina[j],易得:inv[a[1]]=inv[s[1]]⋅s[2]inv[a[1]]=inv[s[1]]\cdot s[2]inv[a[1]]=inv[s[1]]⋅s[2]这个...原创 2019-10-06 14:10:41 · 212 阅读 · 0 评论 -
【模板】扩展中国剩余定理(EXCRT)
最近搞了一发中国剩余定理,写个博客。jzm orz or2 orz一、题目点此看题二、解法0x01 普通crt先讲一下普通crtcrtcrt,其实类似于拉格朗日插值法,我们可以构造出这样一个式子:x=a1Mm1t1+a2Mm2t2...+akMmktkx=a_1\frac{M}{m_1}t_1+a_2\frac{M}{m_2}t_2...+a_k\frac{M}{m_k}t_kx=a1...原创 2019-10-06 11:43:53 · 184 阅读 · 2 评论 -
区间素数个数
一、题目点此看题二、解法线性筛是O(n)O(n)O(n)的,我们考虑在非线性时间内解决这个问题。由于我们知道任何一个数都由至多1个大于n\sqrt {n}n的数组成,我们考虑用小于n\sqrt{n}n的筛出这些质数。设f[i][j]f[i][j]f[i][j]为用前iii个质数筛[1,j][1,j][1,j]的数得到的没有被筛掉数的个数,转移考虑一个一个加入质数:f[i][j]=f...原创 2019-09-20 21:53:14 · 342 阅读 · 0 评论 -
【模板】Pollard-Rho算法
一、题目电磁看题二、解法作者讲的解法只是一个缩略版,要想获得更好的理解请参照大佬的博客。0x01 生日悖论如果你不是很了解,点此观看生日悖论告诉了我们一个道理,也就是我们用组合计算的方式会比单个确切值更有概率得到答案。什么意思呢?举个例子,我们要找到xxx,用r−lr-lr−l的方式比直接randrandrand概率有更大概率得到xxx,这里作者就不给详细证明了,感性理解。所以与其直...原创 2019-09-18 13:09:35 · 719 阅读 · 0 评论 -
拉格朗日插值
拉格朗日插值一、题目及数据范围由小学知识可知,n个点(xi,yi)可以唯一地确定一个多项式。现在,给定n个点,请你确定这个多项式,并将k代入求值,求出的值对998244353取模。n≤2000xi,yi,k≤998244353二、解法这道题看上去无法下手(实际上也是),爆搜绝对T。一个最显然的思路就是高斯消元,但是要O(n3)(而且我也打不来 )。而拉格朗日差值法可以完美的解决这...原创 2019-07-23 12:10:39 · 292 阅读 · 0 评论