数论
L_0_Forever_LF
一个热爱OI的OIer
展开
-
SBT学习笔记
学习资料1学习资料2SBT,Stern-Brocot Tree,大概是个能表示出所有最简有理分数的一棵树每一层的所有分数继承到下一层,并且对于相邻的mn,m′n′\dfrac{m}{n},\dfrac{m'}{n'}nm,n′m′,在下一层生成一个新的分数m+m′n+n′\dfrac{m+m'}{n+n'}n+n′m+m′插在他们中间根据归纳可以证明1.对于相邻的mn<m′n′\dfrac{m}{n}<\dfrac{m'}{n'}nm<n′m′,始终有m′n−mn′=1原创 2020-08-05 00:08:18 · 269 阅读 · 0 评论 -
BZOJ5104: Fib数列
首先我们有Fib数列第n项的通项 Fn=15√[(1+5√2)n−(1−5√2)n]=NFn=\dfrac{1}{\sqrt 5}[(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n]=N 先推一波柿子 (1+5√2)n−(1−5√2)n=5√N=T(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n=\sqrt5原创 2018-01-14 15:56:43 · 912 阅读 · 0 评论 -
BZOJ5118: Fib数列2
这个2比1简单吧..P−−√\sqrt P判一下发现模数是个质数因为有这个公式Fn=15√[(1+5√2)n−(1−5√2)n]Fn=\dfrac{1}{\sqrt5}[(\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n] 用二次剩余弄出在模这个质数下的5√\sqrt5,令A=1+5√2,B=1−5√2A=\frac{1+\sqrt5}{2},B=原创 2018-01-14 16:59:42 · 390 阅读 · 0 评论 -
BZOJ1129: [POI2008]Per
模数m不是质数很麻烦qwq 先把他分解成m=∏Mi=1pikim=∏i=1Mpikim=\prod_{i=1}^Mpi^{ki} 用每个pikipikipi^{ki}做模数计算最后EXCRT合并那么现在模数Mod=pikiMod=pikiMod=pi^{ki} 计算s的排名,按位枚举i,计算1~i-1位与s相同,第i位< s的序列数,最后+1 令p[i]表示位置i在序列里排第p[...原创 2017-12-08 10:09:24 · 813 阅读 · 2 评论 -
BZOJ3834: [Poi2014]Solar Panels
一开始看错题了,后来重新看了题…emmmm还是不会啊啊啊啊,写了个貌似复杂度很对的暴力交上去过了???(先讲一下我这个比较搞笑?的做法) 求a~b,c~d的数之间的最大的gcd,尝试枚举一下? 因为一个数x,他的>x√> \sqrt x的约数可以通过枚举<x√< \sqrt x的约数求得,我们枚举从1到b√\sqrt b枚举dd,对于x=from a to bx=from\ a\ to\ b,原创 2017-11-29 21:52:08 · 279 阅读 · 0 评论 -
codeforces 582D - Number of Binominal Coefficients
emmmmmmmmmmmmmm 这题模拟赛的时候做过 当时back的时候推柿子推得很痛苦 现在再做还是不会….不过推柿子变得熟练了很多…题解: 因为组合数可以写成阶乘的形式Cmn=n!m!(n−m)!C_n^m=\dfrac{n!}{m!(n-m)!} 又因为pp是质数,组合数能否被pkp^k整除取决于他含多少个pp作为因子 所以我们不妨先考虑阶乘n!n!含多少个pp 假设n!n!含有原创 2017-09-21 21:26:01 · 418 阅读 · 0 评论 -
BZOJ3028: 食物
好久没有更新博客了话说… 博主并没有退役….我们写出每种食物的生成函数 承德汉堡:1+x2+x4....=11−x21+x^2+x^4....=\frac{1}{1-x^2} 可乐:1+x1+x 鸡腿:1+x+x2=1−x31−x1+x+x^2=\frac{1-x^3}{1-x} 蜜桃多:x+x3+x5....=x1−x2x+x^3+x^5....=\frac{x}{1-x^2} 鸡块:原创 2017-07-29 09:36:53 · 379 阅读 · 0 评论 -
BZOJ3771: Triple
我们写出斧头的生成函数F(x)F(x) 题目要求用1把、2把、3把斧头能拼出的方案数,不考虑顺序 那就要去掉非法情况和重复情况 所以就不能写成:F(x)+F2(x)+F3(x)F(x)+F^2(x)+F^3(x) 对于F2(x)F^2(x),他会有一把斧头用2次的情况 对于F3(x)F^3(x),会有一把斧头用2、3次的情况 于是令T(x)T(x)为每把斧头用2次的生成函数,G(x)G(原创 2017-07-29 10:27:35 · 383 阅读 · 0 评论 -
弱省胡策Round5 Handle
题意: 给定B0...BnB_0...B_n,求A0...AnA_0...A_n满足Bi=∑nj=iCijAj(mod 988244353)Bi=\sum_{j=i}^nC_j^iA_j ( mod\ 988244353)题解: 拆组合数 得Bi=∑nj=ij!i!(j−i)!AjB_i=\sum_{j=i}^n\dfrac{j!}{i!(j-i)!}A_j 于是Bii!=∑nj=i1(j−原创 2017-07-29 12:49:13 · 282 阅读 · 0 评论 -
BZOJ3853: GCD Array
对原序列中所有(x,m)=d的ax+v,询问前缀和 对这个修改推一波柿子(以下省略下取整) v∑nx=1(x,m)=d−>v\sum_{x=1}^n(x,m)=d-> v∑n/dx=1(x,m/d)=1−>v\sum_{x=1}^{n/d}(x,m/d)=1-> v∑n/dx=1∑D|(x,M)μ(D)−>v\sum_{x=1}^{n/d}\sum_{D|(x,M)}μ(D)-> v∑D|原创 2018-01-05 08:02:23 · 350 阅读 · 0 评论 -
二次剩余学习笔记
两篇比较好的blog,第二篇介绍了一些拓展的东西 http://blog.csdn.net/a_crazy_czy/article/details/51959546 http://blog.miskcoo.com/2014/08/quadratic-residue因为个人数学不好,学这东西很多东西感性的理解就过掉了qaq,这里的笔记并不严谨以下讨论的是模数P为奇素数的情况先定义一个原创 2018-01-13 16:24:26 · 2805 阅读 · 0 评论 -
BZOJ3859: Periodic Binary String
我们可以旋转串T,使得l~r等价于0~r-l 根据(r-l)%k可以将T分成T1,T2两部分,问题变成满足0<=a<2|T1|,0<=b<2|T2|0<=a<2^{|T1|},0<=b<2^{|T2|},pa+qb≡x(Mod p)pa+qb≡x (Mod\ p)的解数 也即0<=a<A,0<=b<B0<=a<A,0<=b<B 记A=k1p+ka,B=k2p+kbA=k1p+ka,B=k2p+原创 2018-01-10 22:11:58 · 381 阅读 · 0 评论 -
BZOJ4772: 显而易见的数论
很多题套在一起的一个东西…这个F(x,y)F(x,y)F(x,y)的type3看起来就很不可做,说明这题只能去枚举pi,pjpi,pjp_i,p_j的组合,去计算他们产生的贡献数 当pi=pjpi=pjp_i=p_j时,也就是我们对于一个出现了xxx个iii的划分方案,要统计他x(x−1)/2x(x−1)/2x(x-1)/2次 直接算恰好出现了xxx个iii的划分方案可以用至少出现了xxx...原创 2018-04-25 09:09:45 · 270 阅读 · 0 评论 -
BZOJ2159: Crash 的文明世界
这篇写差分表和斯特林数介绍的不错这题就是要计算这个东西 S(i)=∑j=1ndist(i,j)kS(i)=∑j=1ndist(i,j)kS(i)=\sum_{j=1}^ndist(i,j)^k这个东西很难维护,我们把dist(i,j)kdist(i,j)kdist(i,j)^k拆一下S(u)=∑v∑kj=0{kj}d(u,v)!(d(u,v)−j)!S(u)=∑v∑j=0k{jk...原创 2018-04-07 21:59:49 · 238 阅读 · 0 评论 -
BZOJ4833: [Lydsy1704月赛]最小公倍佩尔数
可以看一下这篇东西推一下f(n),e(n)的柿子,有 (1+2–√)n+1(1+2)n+1(1+\sqrt 2)^{n+1} =(1+2–√)n(1+2–√)=(1+2)n(1+2)=(1+\sqrt 2)^n(1+\sqrt 2) =(e(n)+f(n)2–√)(1+2–√)=(e(n)+f(n)2)(1+2)=(e(n)+f(n)\sqrt 2)(1+\sqrt 2) =e(n...原创 2018-04-07 20:18:30 · 369 阅读 · 0 评论 -
BZOJ3738&BZOJ4535: [Ontak2013]Kapita加强版
求Cnn+m10kmod1e9Cn+mn10kmod1e9\dfrac{C_{n+m}^n}{10^k}\mod 1e9,这个k很好弄,然后上面那玩意mod 1e18………组合数取模感觉到比较大的数据范围就变成一个很毒瘤的东西了啊qaq丢发链接跑路…..这个题就是3.2里讲的那个分治(我总感觉就是个快速幂?)多项式的毒瘤东西 组合数求模我总感觉我写的和唐教写的不是一个东西= =,我的...原创 2018-03-13 11:53:31 · 336 阅读 · 0 评论 -
BZOJ3328: PYXFIB
我们要求这个东西 ∑ni=0CinFi[i mod k=0]∑i=0nCniFi[i mod k=0]\sum_{i=0}^nC_n^iFi[i\ mod\ k=0] 先不考虑k|ik|ik|i这个条件,即只计算∑ni=0CinFi∑i=0nCniFi\sum_{i=0}^nC_n^iFi 设出Fib数列的转移矩阵AAA,那么FiFiFi就是AiAiA^...原创 2018-02-25 16:35:58 · 259 阅读 · 0 评论 -
BZOJ3994: [SDOI2015]约数个数和
∑Ni=1∑Mj=1d(ij)∑i=1N∑j=1Md(ij)\sum_{i=1}^N\sum_{j=1}^Md(ij) 这个约数个数和好像是个经典套路qaq 我们分别枚举i,j的约数d1,d2,就可以计算方案数了,但要去重,因为有2*1=1*2=2这种情况,所以我们强制i的约数d1达到上限,即 (i/d1,d2)=1(i/d1,d2)=1(i/d1,d2)=1∑d1∑d1|i∑d2∑d2|...原创 2018-03-10 14:57:25 · 201 阅读 · 0 评论 -
BZOJ4652: [Noi2016]循环之美
qaq原创 2018-03-09 10:39:46 · 365 阅读 · 0 评论 -
BZOJ4174: tty的求助
一开始一直觉得是搞掉一个∑∑\sum然后用类欧做然后就不会了qaq 看了题解发现跟类欧完全没关系qaq为了方便以下用[x]代表⌊x⌋为了方便以下用[x]代表⌊x⌋为了方便以下用[x]代表\lfloor x \rfloor 我们要求这么个东西 ∑n=0N∑m=0M∑k=0M−1[nk+xm]∑n=0N∑m=0M∑k=0M−1[nk+xm]\sum_{n=0}^N\sum_{m=0}^M...原创 2018-02-26 13:58:17 · 411 阅读 · 0 评论 -
BZOJ4555: [Tjoi2016&Heoi2016]求和
第二类斯特林数S(i,j)S(i,j)S(i,j)代表iii个数分成jjj个集合的方案数f(n)=∑ni=0∑ij=0S(i,j)∗2j∗j!f(n)=∑i=0n∑j=0iS(i,j)∗2j∗j!f(n)=\sum_{i=0}^n \sum_{j=0}^i S(i,j)*2^j*j!这里的S(i,j)∗2j∗j!S(i,j)∗2j∗j!S(i,j)*2^j*j! 可以理解成i个数分成j个集...原创 2017-07-29 15:12:17 · 801 阅读 · 2 评论 -
BZOJ3560: DZY Loves Math V
因为phi是积性函数,将a1,a2…an的质因子拆出来,分开计算再乘 对于一个质因子pipi,设他在a1,a2…an里的指数分别是u1,u2…un 那么有 ∑u1i1=0∑u2i2=0...∑unin=0φ(pi∑nj=0ij)\sum_{i_1=0}^{u1}\sum_{i_2=0}^{u2}...\sum_{i_n=0}^{un}\varphi(pi^{\sum_{j=0}^ni_j})原创 2017-04-27 07:43:30 · 500 阅读 · 0 评论 -
BZOJ 2301: [HAOI2011]Problem b
首先对于a≤x≤b,c≤y≤da≤x≤b,c≤y≤d 这样的限制,可以容斥一下,转换成1≤x≤n1≤x≤n这样 设N=⌊nk⌋,M=⌊mk⌋N=\lfloor \dfrac n k \rfloor ,M=\lfloor \dfrac m k \rfloor ∑ni=1∑mj=1,(i,j)=k1−>\sum_{i=1}^n\sum_{j=1,(i,j)=k}^m1-> ∑Ni=1∑Mj=1[(原创 2017-02-18 10:11:39 · 743 阅读 · 0 评论 -
BZOJ1876: [SDOI2009]SuperGCD
乍一看觉得是高精度欧几里得……然而算了复杂度后发现不对劲 结果是必修三刚学的更相减损法(当时将这个算法时一直觉得他很辣鸡) 然后百度一下我就不讲了如果两个数都是偶数,那么他们一定有2这个质因子,提取2直到两个数有一个是奇数 一奇一偶的话,提取那个偶数的2直到它变成奇数,因为奇数和它的公因子不可能是2 然后就是两个奇数的情况,用一个减另一个,就变成了一奇一偶的情况,然后处理方法同上 最后是原创 2016-12-13 16:58:30 · 952 阅读 · 0 评论 -
BZOJ2956: 模积和
∑ni=1∑mj=1[i≠j](n mod i)(m mod j)−>\sum_{i=1}^n \sum_{j=1}^m[i≠j](n \ mod\ i) (m\ mod \ j)-> ∑ni=1(n−i⌊n/i⌋)∑mj=1[i≠j](m−j⌊m/j⌋)−>\sum_{i=1}^n(n-i\lfloor n/i\rfloor ) \sum_{j=1}^m[i≠j](m-j\lfloor m/j\原创 2016-11-01 16:24:10 · 293 阅读 · 0 评论 -
BZOJ 1101: [POI2007]Zap
∑na=1∑mb=1[gcd(a,b)=D]−>\sum_{a=1}^n\sum_{b=1}^m[gcd(a,b)=D]-> ∑Na=1∑Mb=1[gcd(a,b)=1] (N=⌊n/D⌋) (M=⌊m/D⌋)−>\sum_{a=1}^N\sum_{b=1}^M[gcd(a,b)=1] \ (N=\lfloor n/D\rfloor) \ (M=\lfloor m/D\rfloor) -> ∑原创 2016-11-02 09:27:51 · 413 阅读 · 0 评论 -
BZOJ2440: [中山市选2011]完全平方数
求第k个非完全平方数先二分一下,问题变成1~x有多少个非完全平方数,知道平方数的集合,可以容斥一下 (为了叙述方便,下文一个数可代表其平方的倍数的集合) 被一个集合包含的只有质数,被两个集合包含的是质因数个数为2的数……而且所有考虑的数都不含平方因子,可以发现和μμ一样,被考虑进去的数的μμ值就是他的系数 所以预处理一下μμ,每次询问O(n−−√)O(\sqrt n)code:#include原创 2016-11-01 15:21:38 · 352 阅读 · 0 评论 -
BZOJ3930: [CQOI2015]选数
差不多是条咸鱼了…………一开始对着题目yy了一个貌似很正确,复杂度不会算的搜索,想了想不是很敢打,往DP想,然后想出了一个看起来很正确的DP,然后挂了…. 那想容斥咯………..不会……… 那试试反演咯…………..还是不会……… 那我到底会什么………….. 看题解好像还是会的这题做法好多的样子,主要是两类,一类是反演,Orz PoPoQQQ μμ的前缀和处理窝看不懂…………还有一类是容斥,因为原创 2016-11-04 08:52:25 · 841 阅读 · 0 评论 -
BZOJ3462: DZY Loves Math II
首先我们要对着题目多看几遍,会发现,题目要求的质数序列里面的数一定都是SS的质因数! 然后再想想,会发现如果SS有平方因子时一定无解(这些质数的lcmlcm不可能为SS) 那么问题就转化成了给一些质数,每种可以用若干次(至少一次),求和为n的有几种 把n减去每个质因子就能去掉至少一次的限制 考虑质因子个数,用计算器算一下易知是≤7的 易知这道题是要DP的,但是n很大,101810^{18}原创 2016-11-03 20:30:12 · 919 阅读 · 0 评论 -
BZOJ3309: DZY Loves Math
先尝试化一下题目给的式子 ∑ni=1∑mj=1f(gcd(i,j))−>\sum_{i=1}^n\sum_{j=1}^mf(gcd(i,j))-> ∑df(d)∑⌊n/d⌋i=1∑⌊m/d⌋j=1,gcd(i,j)=11 −>\sum_df(d)\sum_{i=1}^{\lfloor n/d\rfloor}\sum_{j=1,gcd(i,j)=1}^{\lfloor m/d\rfloor}1 \原创 2016-11-03 14:01:43 · 459 阅读 · 0 评论 -
51nod 1575 Gcd and Lcm
先吐槽一下这题题解的不负责,完全就是什么都没讲然后去膜sxt大爷讨论区也给出了关于∑ij=1∑ik=1[(i,j),(i,k)]\sum_{j=1}^i\sum_{k=1}^i[(i,j),(i,k)]这个东西对于一个质数和质数的若干次幂的公式,然后就可以用洲阁筛了以下是个人看了论文后的一些理解和总结(主要写给自己看),部分摘自论文,侵删以n√\sqrt n为界,因为1∽n1 \backsim n原创 2017-04-08 11:32:29 · 713 阅读 · 0 评论 -
BZOJ3512: DZY Loves Math IV
题意求∑ni=1∑mj=1φ(ij),(n≤105,m≤109)∑i=1n∑j=1mφ(ij),(n≤105,m≤109)\sum_{i=1}^n\sum_{j=1}^m\varphi(ij),(n≤10^5,m≤10^9) 直接尝试化简式子好像化不出来,因为n的取值范围不大,考虑枚举i,对于每个i,计算∑mj=1φ(ij)∑j=1mφ(ij)\sum_{j=1}^m\varphi(ij)即∑m...原创 2016-11-08 10:38:49 · 578 阅读 · 0 评论 -
BZOJ3529: [Sdoi2014]数表
对一个没问题的程序看半天才发现公式打错了我怎么又把×打成+了…. Mod 2^31 可以利用int的自然溢出,最后&(2^31-1)—–PoPoQQQ 这题我公式好像有多种推法但是能保证不大于a的条件的好像只有一种离线处理询问,要计算不大于a的,将询问按a排序,推出一个和每个位置权值有关的函数按照从小到大插值 先不考虑a的限制,但最后推得的式子要有方法能确保对于每个询问计算的是不大于a的和原创 2016-11-02 15:57:45 · 427 阅读 · 0 评论 -
BZOJ2749: [HAOI2012]外星人
因为phi满足积性函数,所以将x质因数分解后 φ(x)=∏φ(piki)\varphi(x)=\prod \varphi(pi^{ki}) 然后,考虑每次对x取phi,就相当于对每个pikipi^{ki}取phi, φ(piki)=piki−1(pi−1)\varphi(pi^{ki})=pi^{ki-1}(pi-1),当pi≠2pi≠2时,pi−1pi-1一定会分出至少一个2的质因子 而φ原创 2017-04-26 21:31:39 · 498 阅读 · 0 评论 -
BZOJ3561: DZY Loves Math VI
∑ni=1∑mj=1lcm(i,j)gcd(i,j)\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)^{gcd(i,j)} ∑ni=1∑mj=1(ijd)d\sum_{i=1}^n\sum_{j=1}^m(ijd)^d ∑d=1dd∑n/di=1id∑m/dj=1jd∑D|(i,j)μ(D)\sum_{d=1}d^d\sum_{i=1}^{n/d}i^d\sum_{j=1}^{m原创 2017-04-27 08:03:56 · 508 阅读 · 0 评论 -
BZOJ4330: JSOI2012 爱之项链
首先,要求有多少种不同的项链,需要先求出有多少种不同的戒指 m个彩色球状物,旋转后相同视为相同,R种颜色,是不是很眼熟(然而并不,为什么我看题的时候想的是可重复圆排...),没错这就是置换首先由burnside引理得种类数num=∑mi=1cimnum=\dfrac{\sum_{i=1}^mc_i}{m}(cic_i表示第i种置换下相同的方案数), 然后由polya得,num=∑mi=1Rgcd原创 2017-04-14 20:23:52 · 806 阅读 · 3 评论 -
BZOJ3434: [Wc2014]时空穿梭
我们考虑怎么选取c个点满足有直线同时经过他们 设AiA_i表示第i个点,用向量bi=(x1,x2,x3...xn)b_i=(x1,x2,x3...xn)表示Ai+1A_i+1与AiA_i的差 由于每一维的vi(xi=pi+tvi)vi(xi=pi+tvi)是不变的,对于相邻的两个点,Δt\Delta t是相同的,所以任一向量bi=(x1,x2,x3...xn)bi=(x1,x2,x3...xn)原创 2017-04-15 07:47:56 · 1677 阅读 · 0 评论 -
BZOJ1407: [Noi2002]Savage
判错后不跳出来无限TLE的zz..因为数据保证有解且不大于10610^6,所以我们可以枚举(滑稽考虑对于一个枚举的M,怎么判断他是否合法 对于任意的两个野人,有生之年他们不能在同一个洞穴,设他们到了第x年会在一个洞穴,野人1的速度是a,一开始在b,野人2的速度是c,一开始在d,那么有ax+b≡cx+d(Mod M)ax+b≡cx+d(Mod \ M) (a−c)x+My=d−b(a-c)x+My原创 2017-04-06 07:58:41 · 548 阅读 · 0 评论 -
关于数论的一些东西
数论的题大概有几类,积性函数、同余方程、概率、组合数学、其他一些什么东西和数论搅在一起= = 积性函数的题一般都要推公式,反演,线性筛,有时要递归处理子问题、杜教筛、应用某个函数的特殊性质 同余方程的问题有方程解个数和求解等东西,有的在指数上又变一下,然后就CRT,EXCRT,原根,BSGS,MillerRabin,rho 概率就DP,容斥,配合组合数学弄 组合数学分解质因数,有个Lucas原创 2016-11-08 11:09:24 · 1520 阅读 · 0 评论 -
51nod 1184 第N个质数
这题正解不用二分的呀…我弱只会二分的 (除了正解,好像有个更厉害的论文解法,然而根本看不懂论文…)二分+洲阁筛二分后,问题转化为判定性问题,即1~n有多少个质数 设g[i][j]表示1~j,与前i个质数互质的数的个数,得 g[i][j]=g[i−1][j]−g[i−1][j/prime[i]]g[i][j]=g[i-1][j]-g[i-1][j/prime[i]] 因为二分有多个n,不能递推原创 2017-04-08 10:20:59 · 903 阅读 · 2 评论