
各类笔记
djyanglinhan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
队列优化多重背包
今天学习多重背包队列优化,其思想就是考虑现在要加入背包的一个物品,其所需空间为d,所有能更新当背包空间为值vi的时候的状态的空间肯定是vi-k*d(易得),所以可以利用一个单调队列优化,同时由于随着空间的增大,其价值是肯定增大的,为此需要利用类似于斜率的思想维护单调性,否则会全部是最后一个最优。然后每次将队尾元素弹栈后再压入新元素,队头弹栈后即为答案,复杂度O(nm),十分优。原创 2017-10-21 14:52:00 · 177 阅读 · 0 评论 -
随机算法学习
今天我们来学习模拟退火。 模拟退火和粒子群都是OI的特色,不能不学习 模拟退火算法是一种加上了“将就系数”的爬山算法。 定义一种“温度函数”为 g=eΔEKTg=e^{\frac{\Delta E}{KT}}g=eKTΔE的东西。(为了这个公式专门学习了latex语法) 其中k是个常数不用管,delta就是随机的新解的变化值。变大的话直接就取了,变小的话就用函数值1\frac{函数值} {1}1...原创 2019-02-27 19:57:07 · 645 阅读 · 0 评论 -
pollard-rho&miller-rabin
今天学习pollard-rho和miller-rabin。 前置: 不管怎么说大力筛一遍2,3,5,7,11,13,17都是错不了的! Miller-rabin %%% Doggu太神啦! 前置技能:费马小定理 ap−1≡1(Mod p)p为素数a^{p-1}{\equiv} 1(Mod\ p)p为素数ap−1≡1(Mod p)p为素数 证明: 若gcd(i,j)==1gcd(...原创 2019-02-27 21:35:52 · 313 阅读 · 0 评论 -
最小圆覆盖学习
今天学习最小圆覆盖。 算法 实际上算法就三个循环。 %%%! void solve(){ for( int i = 1 ; i <= N ; i ++ ) if( !inside( p[i] ) ){ O = p[i] ; R = 0 ; for( int j = 1 ; j < i ; j ++ ) if( !insid...原创 2019-02-28 21:33:28 · 510 阅读 · 0 评论 -
改邪归正,弃暗投明
洗心革面,重新做人 struct treetype{ int fr,to; int ls,rs; ll num; int tag }; void addt(int a1,int fr,int to,int num){ ... mid=(t[a1].fr+t[a1].to)/2; if(fr<=mid)... if(to>mid)... } ×!!! 基本空间复杂度4...原创 2019-03-01 19:33:06 · 308 阅读 · 0 评论 -
二次同余
二次同余 今天来学习二次剩余。 背景 2018SCOI就考了这个。 然后我就被送退役了。 yy就切了然后拿了一本。 怎么判断是否有解 考虑我们知道n、p,要求x:x2≡n(Mod p)x^2{\equiv}n(Mod\ p)x2≡n(Mod p) 特判0的情况后: (有解)=[np−12≡1](有解)=[n^{\frac{p-1}{2}}{\equiv}1](有解)=[n2p−...原创 2019-03-01 21:07:23 · 585 阅读 · 0 评论 -
FFT理解
还是得靠理解啊 背景 FFT靠背板的选手被合数循环FFT题卡掉了。 前言 FFT的核心思想是DFT和IDFT. 换言之就是快速求出点值表示。 前置 单位根:www:n次方后变成1(乘法单位元)。 要是有wn2=−1w^\frac{n}{2}=-1w2n=−1更为舒适(2nFFT2^nFFT2nFFT时使用) 实现 我们拿一个数组存储当前的对应的点值(废话)。 其中下标对应的是多少次根。 以2的n...原创 2019-03-08 21:32:03 · 430 阅读 · 0 评论 -
ntt学习笔记
差不多就是模意义下的fft各个注意事项 各个注意事项 仔细检查爆long long!!加法也会爆 总项数是两个乘数多项式之和的2倍 注意输出的项数! 注意len的意义! ...原创 2019-03-07 09:51:18 · 286 阅读 · 0 评论 -
多项式各种奇怪算法学习
多项式求逆 已知f(x)f(x)f(x),求g(x)g(x)g(x)令f(x)g(x)≡1(mod&amp;amp;amp;amp;amp;amp;amp;nbsp;xn)f(x)g(x)\equiv 1(mod\ x^n)f(x)g(x)≡1(mod&amp;amp;amp;amp;amp;amp;amp;nbsp;xn). mod&amp;amp;amp;amp;amp;amp;amp;nbsp;xnmod\ x^nmod&amp;amp;原创 2019-03-07 10:10:22 · 372 阅读 · 0 评论 -
莫比乌斯变换&子集卷积
今天学习莫比乌斯变换。 大佬の博客 前置技能 fwt与运算。 其实就是这个的低配版本 干嘛用的? 用来快速计算子集卷积。 就是说, f[i]=∑g[j]∗h[k](j∣k=i&amp;&amp;j&amp;k=0)f[i]=\sum {g[j]*h[k]}{(j|k=i\&amp;\&amp;j\&amp;k=0)}f[i]=∑g[j]∗h[k](j...原创 2019-03-04 19:48:36 · 529 阅读 · 0 评论 -
莫队
莫队正常莫队大家都会带修莫队咋搞?树上莫队咋搞?前置知识树分块另一种做法 正常莫队 大家都会 带修莫队 咋搞? 块大小n3\frac{n}{3}3n 枚举左端点块位置,枚举右端点块位置,枚举时间 移动左右端点每个询问是 23n\frac{2}{3}n32n,枚举时间是(块左右端点方案数)13n∗13n∗n(时间)(块左右端点方案数)\frac{1}{3}n*\frac{1}{3}n*n(时间)...原创 2019-03-20 20:27:08 · 203 阅读 · 0 评论 -
虚树入门
虚树 怎么搞? O(树大小dfs) O(树大小*虚树大小)被卡退役。 想正解! 法一 对于要建的虚树上点按dfs序排序后栈。 不好写——LJX 法二 按dfs序排序后相邻两个求lca,对于这些lca再加入后按dfs序排序连边即可。 注意加边加到哪里。 ...原创 2019-03-20 21:30:31 · 174 阅读 · 0 评论 -
博弈论
nim学习博弈论sg函数有什么用?所以呢?多问题下的转化? 博弈论 平等游戏全部可以归约到有向图移动游戏。 sg函数 一个集合的sg函数为不包含在这个集合里的最大非零自然数。 有什么用? 一个集合的sg为a,说明[0,a−1][0,a-1][0,a−1]的值都能取到。 所以呢? 在游戏中,一个函数的sg是它所有经过一步后走到的节点的sg的mex。 多问题下的转化? 转化为多堆的nim游戏。 考虑m...原创 2019-03-25 16:42:57 · 281 阅读 · 0 评论 -
二分图博弈
二分图博弈前置芝士博弈平等博弈所以?啥玩意啊?图为啥?有向无环图有向有环图非二分无向图结论?最大匹配增广路正题二分图博弈不固定起点呢? 前置芝士 博弈 字面意思。 平等博弈 两个人所能进行的操作只和先后有关。 所以? 任何平等博弈都可以看作在一张图上进行。 啥玩意啊? 图 首先这张图是个无向图并且是个二分图。 为啥? 有向无环图 除了DJ都会。 有向有环图 平局点。 非二分无向图 npc 结论? ...原创 2019-03-30 16:21:14 · 1003 阅读 · 0 评论 -
线性基求交
线性基求交线性基线性基合并线性基求交性质怎么求? 线性基 大家都会。 线性基合并 大家都会。 线性基求交 性质 获得的交线性基一定能被两个线性基分别表示。(废话) 怎么求? 假设我们有两个线性基,a和b。 从低向高考虑b中的每一个值,同时维护一个由a中所有向量和b中所有低于它的向量构成的线性基,这个线性基我们还要维护每个东西是由哪些向量构成的。 然后对于b中的这个向量,如果它能被a和之前的b线性表...原创 2019-03-26 19:23:06 · 1818 阅读 · 0 评论 -
矩阵求逆
矩阵求逆 今天学习矩阵求逆。 干啥? 对于一个矩阵A,我们希望求出一个矩阵B使得A∗B==单位矩阵A*B==单位矩阵A∗B==单位矩阵。 怎么做? 我们在矩阵右侧添加一个大小和这个矩阵一样的单位矩阵,把左边这个矩阵高消成单位矩阵即可。 消不成单位矩阵即是不存在解的情况。 为什么? 我们考虑高斯消元实际上是对矩阵做初等行变换,相当于右乘了一个矩阵,使得A∗C==单位矩阵,单位矩阵∗C==DA*C==...原创 2019-04-03 20:36:29 · 1930 阅读 · 0 评论 -
min_25筛学习
min_25筛是用于处理可以快速算出某个质数的值的积性函数的前缀和问题的一种筛。 首先定义这样一个东西: g()原创 2019-02-22 20:05:44 · 307 阅读 · 0 评论 -
fwt总结
FWT是一种用于处理位运算卷积的算法。 这个算法的核心思想就是利用位运算的包括性来实现类似于“打包处理”的快速运算。 比如说对于或卷积而言,我们需要卷积a、b,我们利用辅助数组an[i]表示所有二进制下状态被i状态包括的(如101被111)包括,bn[i]同理,那么an[i]*bn[i]显然就是答案数组的cn[i] 举个栗子,考虑an[] a[101]*b[100]->c[101] ...原创 2018-02-25 15:36:58 · 398 阅读 · 0 评论 -
支配树学习笔记
今天晚上沉迷毒瘤常数优化spfa过支配树题,然而一直调不过(ET),隔壁队长都把支配树给学了,于是就看了看支配树算法。其中semi/sdom指的是最小的不经过dfs树上所有点而到达某个dfs序比这个点小的点,这个东西可以反序求:考虑任意一个点,它要么是直接到达这个目标点,要么经过某个比它大的点到达目标点,这两个值分别可以从它能直接到达的所有dfs序小于它的点和所有已经求出的比它大的semi求出。有原创 2017-11-02 21:17:45 · 410 阅读 · 1 评论 -
cdq分治&整体二分学习缓存
cdq分治:离线后化时间序为其他某些维上的序列,对于每一次二分操作, 所有左边的数据可能对右边的数据产生影响,在二维逆序对里表现为每次把右子区间的一个数放入左区间时都要加上左边还没放入的数的个数,在三维偏序中改为用树状数组维护原来的值,即用某种数据结构维护(二维逆序对int,三维树状数组,四维再来一个cdq)分治后左区间对右侧区间的影响,任意一对答案只会在这两个数正好被分在相邻的区间时统计,这样就原创 2017-11-24 10:52:41 · 347 阅读 · 2 评论 -
当前弧优化
** 对于一次BFS而言,它确定的层次图中每条边若已经被走完 了,那么它就不可能再带来增广,下一次就直接从这条最后没走完的边走就可以了 ** 例如 对于一次BFS而言,它确定的层次图中每条边若已经被走完了,那么它就不可能再带来增广,下一次就直接从这条最后没走完的边走就可以了 例如 5 5 5 1 1–>2–>3–>4–>5 在裸奔dinic中就会卡原创 2017-12-01 21:10:20 · 784 阅读 · 0 评论 -
可并堆
可并堆原创 2017-12-22 20:07:16 · 239 阅读 · 0 评论 -
网络流-高效劝退
网络流——高效劝退原创 2017-12-24 16:06:29 · 512 阅读 · 0 评论 -
Data Structure
这两天讲的数据结构原创 2017-12-22 20:08:49 · 324 阅读 · 0 评论 -
后缀自动机学习笔记
后缀自动机学习笔记 %%%ldy原创 2017-12-21 19:13:08 · 204 阅读 · 0 评论 -
乱搞题目
一些我看的懂的乱搞题目原创 2017-12-24 19:24:27 · 220 阅读 · 0 评论 -
最短路:从入门到劝退
最短路:从入门到女装原创 2017-12-24 19:34:21 · 536 阅读 · 0 评论 -
矩阵快速幂优化
考虑转移矩阵,若与前面k项有关则大小为k*k,对于第i个答案而言为第一个答案乘上第i个转移矩阵,而第i个转移矩阵可以用第i-1个到第i-k-1个表示,这些矩阵又可以类似地由它们前面的k个矩阵获得,因此任何一个转移矩阵可以用第1到k的矩阵每个矩阵乘以某个系数表示,我们直接对这个表示进行nfang原创 2017-12-09 11:53:37 · 411 阅读 · 0 评论 -
polya应用
自己的笔记原创 2017-12-29 19:32:07 · 237 阅读 · 0 评论 -
KD树学习口胡
KD-tree原创 2017-12-29 20:22:05 · 329 阅读 · 0 评论 -
欧拉回路
欧拉回路判断求? 判断 不会的话请重修小学奥数。 求? void dfs(int u){ for(e[u]){ delet(e[u]); dfs(to); } queue.push(u); } 没了。原创 2019-04-09 20:39:52 · 204 阅读 · 0 评论