
----------数论-------------
gigo_64
莫看,莫看,这不是真实的我(七海脸)
溜了溜了
展开
-
【大学复健】牛顿迭代
T1:关键词:按位贪心,代码分块实际上是两道题:1.n=100,ab不固定使用n^3dp,令f(i,j)表示前i个数分成j部分,对每一位进行一次可行性dp,从高到低,并且不能违背高位的答案。2.n=2000,a=1没有最低限制,则直接转为最优性问题,讲F(i)设为前i个数分成满足条件的最小块数,只要最后小于等于B即可。代码:...原创 2022-09-21 14:36:37 · 143 阅读 · 0 评论 -
【大学复健】两种质朴的素数筛法
大学复健的数论基础原创 2022-09-10 15:09:12 · 196 阅读 · 0 评论 -
csp模拟 路径【复杂度分析】
传送门其实就是个复杂度分析和基础数论。众所周知,gcd变化至少减半,所以最多log次变换。任何一条路径都可以成为以某个叶子结点为根,的一条从上到下的链。而叶子最多10个。所以从每个叶子dfs,暴力维护每个点到根路径上的不同gcd点。然后每次更新即可。复杂度10个nlogn#include<bits/stdc++.h>using namespace std...原创 2019-11-14 18:36:02 · 356 阅读 · 0 评论 -
NOI模拟 七十和十七【递推找规律】
传送门本质还是求按照规则sort好的次数。我们把问题划分。我们发现,如果前i-1位没弄好,那第i位不会动。所以考虑i-1位都弄好了,整第i位。手玩一下发现,如果第i位值为k,需要花费不管阶乘,令表示长度为i的方案数。考虑新加入一个数。不论这个数是多少,总能使前i-1个数选哪些数的方案从(i-1)!变成i!/1=i!。所以多乘了一个i。然后第i个数就是2^{i-1}*(i...原创 2019-11-06 22:20:02 · 285 阅读 · 0 评论 -
【poj2407】Relatives【pollard-rho】
传送门题意:求一个很大数的欧拉函数。根据通式目标得到n的所有质因数。分解即可。#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring> #include<algorithm>using namespace std;#def...原创 2019-10-28 09:46:15 · 80 阅读 · 0 评论 -
miller-rabin测素数与pollard-rho分解质因数
复健复健,,两个随机化算法。Miller-Rabin判断一个数是否是质数。费马小定理说:反过来定理是假的。二次探测定理说:如果p是质数,且,则这个是真的,反过来也是真的。因为p不含有那两个约数。所以我们通过随机二次探测中的这个x,来检验。不断地获得x的平方,如果之前不是1或者p-1,现在却是1了,那这个质数是假的。如果最后不满足费马小定理,那这个质数也是假的。...原创 2019-10-28 09:21:02 · 230 阅读 · 0 评论 -
【loj6485】LJJ学二项式定理【单位根反演】【二项式】
传送门也是板子。求对于这个下标取模,我们直接拆成四个式子,形如直接单位根反演后面这一坨然后就可以做了,最后那一个跟着走就行。把k取遍0123加起来。记得除以4。#include<bits/stdc++.h>using namespace std;#define in read()#define int long longin...原创 2019-10-27 19:19:07 · 178 阅读 · 0 评论 -
原根性质及求原根
原根:如果a模m的阶等于φ(m),即是最小的满足的x,则a是m的一个原根。由质数的欧拉函数值得到,模质数阶为p-1时为其原根,即费马小定理得为最小的x。而在模质数下,原根mod质数的取值两两不同,为0,1,2……质数-1。这个性质让原根有了用武之地。在快速数论变换中替换了单位根。由此我们可以定义离散对数。将乘法转为加法,这是容易爆long long时的经典操作。原根求法:(up...原创 2019-10-27 00:04:04 · 1719 阅读 · 2 评论 -
单位根反演
cyk大佬告诉我们,单位根反演其实就是处理了一个式子。将左边化成右边。NTT意义下就原根。所以我还要去学怎么求原根,,推式子该怎么推怎么推。证明:如果k是n的倍数,则原式为1很显然。反之,等比数列求和一下所以就这么转换啦。...原创 2019-10-26 17:32:20 · 444 阅读 · 0 评论 -
随机数生成器【欧拉常数】
传送门主要介绍欧拉常数。当我们需要计算调和级数,范围特别大的时候,可以使用它。它的定义是,即一坨调和级数减去一个ln。欧拉发现这是个常数,大概在0.57721 56649 01532 86060 左右。所以调和级数就是欧拉常数+ln(n)。但这个公式对于小的n不够精确。小的直接打表。大的才用。计算欧拉常数根据精度要求取个大一点的就行了。#include<bits...原创 2019-10-23 12:01:55 · 348 阅读 · 0 评论 -
行列式
https://blog.youkuaiyun.com/zhaoruixiang1111/article/details/79185927我日这什么东西啊,,我的总结:计算方式:任何一个排列在每个行取出对应数相乘再乘上(-1)的这个排列的逆序对数次方的和。(日这什么东西啊,,)前置定理1:任何一个排列交换两个元素得到的逆序对数和原来的奇偶性相反。证明:相邻肯定相反。不相邻视作先交换过去...转载 2019-10-21 22:01:55 · 809 阅读 · 0 评论 -
【ZJOI2014】力【FFT】
传送门咕咕咕做这道题主要是为了学习一个构造卷积的方法。当我们发现某个式子不构成卷积的时候,可以使用平移,翻转等各种操作来制造卷积。比如这道题将后半部分直接reverse得到一个对应n-i+1的卷积形式。然后顺带复习了一下FFT的打法,,差点搞忘了只记得NTT。#include<bits/stdc++.h>using namespace std;#define ...原创 2019-10-13 15:35:58 · 119 阅读 · 0 评论 -
【LOJ NOI Round#2 Day1 T3】不等关系【容斥】【dp】
传送门(ldx:You have successfully forgot to add an 'is' function to the last expression.)(gigo:Oh you're right,,,wait a moment.)(updateeeee 2019.10.13)也是挺毒瘤的一道题。。必须记录一下。我们可以将大于号视作分割点。所以相当于做很多个...原创 2019-10-11 22:00:33 · 167 阅读 · 0 评论 -
分治NTT
以前是背板今天是理解。前置思想CDQ。当一个多项式前面对后面有贡献,递归分治处理。跟CDQ一样,先左边,然后左边更新右边,然后右边。考虑下面这个图l ----- mid----- rxxxxxxxxxxxxxxxxx系数数组xxxxxx xxxxxxx答案数组假设我们已经求得答案数组左边,用答案数组前mid-l+1和系数数组的前r-l+1项卷...原创 2019-10-11 18:48:33 · 1002 阅读 · 0 评论 -
【LOJ NOI Round#2 Day1 T1】单枪匹马【矩阵】
传送门支持后面加数,区间进行奇怪的要求操作算值。你看这个操作是个线性的迭代,这种时候就应该想到线性代数,那就想到矩阵。你就强行用矩阵表示,然后手玩一下结果矩阵来反推原来的矩阵。手玩出来每个数的初始矩阵是0 11 a[i]其中右下角是分子,右上角是分母。正确性?找两个矩阵乘起来就正确了。那么一个区间可以视作1到r的矩阵乘去掉1到l-1。这个去掉操作联想乘逆元,...原创 2019-10-11 16:03:31 · 163 阅读 · 0 评论 -
【BJOI2019】勘破神机【数论】
传送门(难得正经一回)神题,思想值得学习。首先明确题意:两个子问题,一个2xN,一个3xN。接下来对这个问题进行慢慢的推敲解方案数很明显,我们要先解决放置方案数的公式,才能做这个题。对于2xN根据GXOI/GZOI2019逼死强迫症的博客推导我们易知也就是斐波那契。对于3xN首先,n为奇数的时候,无方案,因为会有1个多余格子。接下来,我们的n都表示原...原创 2019-10-11 14:27:02 · 251 阅读 · 0 评论 -
哈希表与BSGS与exBSGS
使用递归学习法。哈希表是一个数据结构,在哈希的基础上用一个链表(我喜欢邻接表)把对某个数取模相同的东西放在一个起始节点下。复杂度期望在1左右,或者很小的常数。给a,b,质数p,求解先讨论特殊情况。如果a modp==0,无解。如果b%p==1,那x=0就行了。而大多数情况。首先因为p是质数,那如果x是一个解,则x%p也是一个解。所以我们只需要管0<...原创 2019-10-10 14:38:27 · 224 阅读 · 0 评论 -
多项式取模
又是一个毒瘤操作。首先我们可以干这么一件很有趣的事情。把一个多项式的所有系数reverse了。然后再把代进去,然后再乘上一个,又变回原来的多项式了。数学讲就是所以它转回去了。切入正题:给定n次多项式A,m次多项式B,求的一个D和R,使得,且R的最高次小于m。dzyo说可以证明DR唯一。所以我们可以这么干。两边同乘x^n所以...原创 2019-10-08 18:09:47 · 2195 阅读 · 0 评论 -
二项式反演
(上接斯特林数?)emmm顺带一提,我好像还没学二项式反演,,那我们先学一下。如果则证明:最后一步的理由是其实就是的二项式展开形式,所以直接抵完了。经典应用1:求错排,设分别为错排,随便排的方案数。枚举有几个放错了得到那直接反演,,我懒得打公式如果要算概率,那再除以n!。fsy巧妙的发现这就是e的倒数的泰勒展开。反正只要是跟组合数有关的都往这方面想一下啦(下...原创 2019-10-08 10:50:43 · 138 阅读 · 0 评论 -
莫比乌斯反演
这个算法,,最早于今年三月初从刘巨佬处听闻,今天才算初步学习了一下。这是一个非常神奇的算法,它可以将一些不好求的东西转化为一些好求的东西。然后一般来说会套用整除分块。所以不了解整除分块的同学可以看我下一篇博客,,待会儿马上写。我们现在正式开始。首先来看看莫比乌斯函数,我们叫它mu~莫比乌斯函数这个函数的定义是对于(i),当i=1时,该函数为1。当i可以被分解为k个质因数...原创 2018-12-12 21:02:35 · 195 阅读 · 0 评论 -
YY的gcd[莫比乌斯反演模板题]
YY的gcd啊,,题意如下;多组数据每组数据给出n,m,k;求1<=i<=n,1<=j<=m,gcd(i,j)=k;的对数。数据数最高为10000,n,m<=10000000毒瘤数据。根据上文所说,莫比乌斯反演最重要的第一步是找准f 和F两个函数。明显本题f(d)指满足gcd(i,j)的对数。那F的含义就如上文所示了。所以...原创 2018-12-13 23:03:45 · 264 阅读 · 0 评论 -
ZAP-Queries【POI2007】【莫比乌斯反演】
传送门:https://www.luogu.org/problemnew/show/P3455太经典了,,模板往上套我直接上个截图吧,,打公式太麻烦整除分块也是常识,直接上啦#include<bits/stdc++.h>#define in read()using namespace std;inline int in{ int cnt=0,f=1...原创 2018-12-15 15:00:12 · 131 阅读 · 0 评论 -
Problem b【HAOI2011】【莫比乌斯反演进阶】
传送门:https://www.luogu.org/problemnew/show/P2522这道题,,其实就是zap-queries 的进阶版在其基础上加了个差分,其他只字未变上代码// luogu-judger-enable-o2#include<bits/stdc++.h>#define in read()using namespace std;inl...原创 2018-12-15 15:04:08 · 164 阅读 · 0 评论 -
[SDOI2014]数表【莫比乌斯反演】
不得已来写一下这道题的博客,,这道题很有思想代表性。传送门ovo我们设也就是约数和。且令n<=m。则目标是我们设即gcd为x的数对个数和。如果我们忽略a的限制,则目标是我们令,因为这是一个狄利克雷卷积形式,可以nlogn筛出来。则原来的则f(d)可以求前缀和,然后整除分块之类地。但最重要的!有a的限制。我们的处理方式是将询问离线按照a排序,对于所有...原创 2019-02-16 14:59:17 · 166 阅读 · 0 评论 -
浅谈数论函数
数论函数什么是数论函数?定义域在正整数的函数。(下文如无特殊说明均为数论函数)积性函数什么是积性函数?积性函数即满足这个性质的数论函数:,人话说就是只要互质,可以乘除的就是积性函数。可以看出任何积性函数的第1项都是1。否则不满足而完全积性函数就是:,人话说就是没有条件,完全可以乘除。只要能满足这样的东西就行。几个常见的积性函数1.莫比乌斯函数的取值后...原创 2019-02-16 20:36:22 · 1182 阅读 · 0 评论 -
数论函数(转载自zxyoi_dreamer)
神犇的博客太强啦转载 2019-02-18 08:27:54 · 200 阅读 · 0 评论 -
生·我上辈子造了什么孽来学这东西·成函数
很棒的博客(叶子最可爱啦ouo)也很棒的博客(我好想你qwq)zxyoi:生成函数形如其中的名叫特征函数,根据需要使用。本次学到的有一般生成函数(OGF)指数生成函数(EGF)这些都是人为定义的,真正重要的是前面的系数。指数i表示大小为i,前面的系数表示方案数。定义一般生成函数的笛卡尔积为D,则D=A*B。也就是普通的卷积。而指数生成函数的定义是数学家通过推导...原创 2019-08-06 11:28:57 · 406 阅读 · 2 评论 -
多项式求逆
我低头,你踮脚,刚刚好推导过程看楼上的博客就可以了。注意事项在对NTT进行IDFT的时候,本来wn应该要变成自己%len意义下的逆元。但根据zxy说的一位大佬的证明,和zxyoi的感性理解我们发现,只需要把原来的所有含x项翻转就可以了。记得在做limit的时候要做到deg*2,防止溢出。并且开c数组来替代a数组防止出现错误。一个跟博客几乎一样的代码#include<...原创 2019-10-18 11:27:33 · 180 阅读 · 0 评论 -
多项式exp
关于多项式exp求则则设使用牛顿迭代来求G的0点。根据泰勒展开,,牛顿迭代就是只取i=0和1的两项,虽然不精确但可以逐渐缩小。而多项式倍增的时候,从平方开始在%x^n的意义下,都是同余的,所以对于多项式,牛顿迭代得到的是准确值。令b0为B的倍增下层的多项式。如果在0点展开,则在递归倍增的时候,所以因为所以所以递归,然后每次多项式ln,再卷起来。...原创 2019-08-08 16:33:30 · 424 阅读 · 0 评论 -
多项式开根
求则那么先多项式ln,乘2的逆元,再exp即可。代码:#include<bits/stdc++.h>using namespace std;#define in read()#define int long longint in{ int cnt=0,f=1;char ch=0; while(!isdigit(ch)){ ch=getchar(...原创 2019-08-08 16:38:06 · 178 阅读 · 0 评论 -
多项式求ln
求两边求导所以对于g’求导,乘g的逆元,然后得到f',再积分回去。关于求导:关于积分:关于代码#include<bits/stdc++.h>using namespace std;#define in read()#define int long longint in{ int cnt=0,f=1;char ch=0; while(!isdigit...原创 2019-08-06 17:26:07 · 222 阅读 · 0 评论 -
FWT快速沃尔什变换
处理位运算卷积。如果可以放链接我为什么不放链接呢反正这是一个转载博客yyb辣么强我们要一起发扬%他的伟大传统所以让我们喊出这真诚的口号:叶子最可爱啦...转载 2019-08-10 09:12:50 · 144 阅读 · 0 评论 -
【洛谷4389】付公主的函数【生成函数】【多项式exp】
背包计数首先做生成函数答案是一大堆的乘积,直接做你已经死了经典套路先取对,加起来,然后exp。设所以积分回去调和级数加进去,exp#include<bits/stdc++.h>using namespace std;#define in read()#define int long longint in{ int cnt=0,f=1;char...原创 2019-08-10 11:03:03 · 226 阅读 · 0 评论 -
【hdu5909】Tree Cutting【FWT加速运算】【树形dp】
也许因为在人群中多看了你一眼,再也没能忘掉你容颜以前总把FFT啊FWT啊当成题目来做,现在要转变思维,把它们当做工具,在某些时候用来加速的工具。设f[i][j]表示i这个大子树内子树权值为j的子树个数。那么相当于自己和所有子节点进行异或操作,FWT加速即可。一开始真没想到,放一个yyb的代码上来,反正长得差不多。注意为了保证答案上传,每次要把常数项++,但计算答案的时候也不...原创 2019-08-11 16:42:37 · 115 阅读 · 0 评论 -
斯特林数
好难学哦qwq md我还没写完以dzyo ppt为基础第一类斯特林数,也写作,表示将n个数放到m个环里面去。环旋转同构。递推式很好想。下一个数放在原来的环里还是新开一个。边界性质1.很明显。2.数学归纳法证明:其实就是提了个公因式罢了。3.使用置换的思想。首先n个数的排列有n!个。并且任何一个排列对应了一个置换。而置换会产生环,因为置换和...原创 2019-10-06 16:40:04 · 512 阅读 · 0 评论 -
博客处女作:中国剩余定理与扩展中国剩余定理
各位好啊,这里是蒟蒻gigo_64的第一篇博客,,这里我们开始啦。本文需要读者知晓扩展欧几里得,如果不会请点击这个大佬的链接;https://blog.youkuaiyun.com/sslz_fsy/article/details/81566257中国剩余定理是用来求解一个方程组的。这个方程组如下:怎么办呢,,我想求一个x怎么办呢,,好我们引入中国剩余定理。1.中国剩余定理首先我们...原创 2018-12-08 20:17:40 · 332 阅读 · 1 评论