- 博客(25)
- 收藏
- 关注
原创 论线段树的调试2--乘法线段树
请先阅读论线段树的调试,现在,你已经学会了线段树,但是,如果问题中加入了乘法呢?你的加法线段树就寄了,乘法线段树,启动!
2024-11-02 15:33:48
633
原创 论线段树的调试
线段树,一种很犇的数据结构,基本所有符合结合律的区间问题都可以使用线段树,但是,线段树对于新手来说并不好调,会直接造成RE,TLE等众多错误,本文将不再介绍线段树的基本思想,请新手大致了解后阅读本文例题在洛谷 P3372 【模板】线段树 1。
2024-10-20 10:00:30
711
原创 论斜率优化dp
首先,加上机器启动时间,我们直接把之后所有的费用系数求和再乘以机器启动时间,这就是无后效性。但是呢,我们可以把若干个任务并做一个,费用系数,完成耗时都求和,只是不需要多次启动机器了。那么哪个点离直线最近呢,显然是连接两条斜率分别大于和小于当前直线的线段的点。因为之前任务已经花费的时间会算到当前任务上,且启动机器时间已经算过了。对于新插入的点,肯定是斜率越小越好,这下动态维护下凸包也可以一并解决。显然的,一个下凸包,我们动态维护凸包,这样就有了单调性。的时间启动机器,做每个任务都需要一定时间,假设在。
2024-09-03 20:46:20
1150
原创 dijkstra其实是bfs?--重新定义dijkstra
本文将介绍dijkstra算法全新的理解方式建议新手对dijkstra有建议了解,强烈推荐这篇文章,无比详细。
2024-08-05 15:09:02
872
1
原创 论网络流(最大流篇)--新手入门超详解--包教包会
网络流是图论算法,阅读本文需要以下前置知识1搜索算法(dfs+bfs)2图的存储3最短路径算法(dijkstra,floyd,spfa)所有数学公式均使用Latex并附有证明作为网络流系列的第一张,我们从网络流的基础–最大流开始我们把网络流这个词拆开来看网络,指的就是图,在网络流问题中大多为有向图,而且有边权(容量)流,顾名思义,就是向水一样,从一个水源(源点)流出,流向终点(汇点那么会有多少水流向终点呢?这就是流量这么说肯定不好理解,我们从图的最简单形态–链出发上图片。
2024-08-04 16:39:24
700
2
原创 论二分的调试--带你告别二分写挂
二分想必大家都会吧,请看如下代码**(求出单调序列中最先出现的m)**r = mid-1;return r;请指出错误并改正,是不是很难一眼看出来二分是一个“玄学”算法思路可以想对,但是一写代码就调不对,本文将治理你的各种疑难杂症。
2024-07-24 20:37:19
264
1
原创 P2704 [NOI2001] 炮兵阵地-状压dp题解
本文是题解,不会介绍什么是状压dp,萌新请进我主页有介绍状压dp作者是蒟蒻,提供的思路及标程没有滚动数组等优化,但是足以在洛谷评测机通过。
2024-07-20 09:25:18
854
原创 P8687糖果(蓝桥杯2019省A)-状压dp题解
本文是洛谷P8687的题解,虽然时间复杂度相同,但是洛谷上的所有题解均与本文不同本文的做法为作者想出,如有雷同纯属巧合本蒟蒻之前写过状压dp的介绍->http://t.csdnimg.cn/CPUGH,所以本文不会介绍状压dp的概念本题适合萌新学状态压缩,难度适中。
2024-07-18 15:41:07
603
原创 论扩展中国剩余定理(EXCRT)(洛谷P4777模板题)
之前挖了个大坑,EXCRT,紫题啊,本蒟蒻不会拖了很长时间,终于来填这个坑前置知识:EXGCD,CRT(其实没啥关系,但是要知道CRT为什么不行),建议阅读我之前的博客。
2024-07-16 10:13:02
914
原创 最长公共上升子序列:题解
本文是acwing提高课动态规划专题最长公共上升子序列的题解会先介绍最长上升子序列和最长公共子序列,因为优化和本题无关,请勿提交。
2024-07-15 18:46:29
296
2
原创 论状态压缩dp
给定一张 n 个点的带权无向图,点从 0∼n−1 标号,求起点 0 到终点 n−1 的最短 Hamilton 路径。看代码,枚举i,j有点浪费时间,可以用树状数组优化,预处理然后lowbit直接用。但是可以发现,当前在i点时,经过的点不一样,所以还要标记经过的点,是要到二维的。但是,数据范围n
2024-05-14 21:02:14
303
2
原创 论博弈论:手把手教你推公式
博弈论,又称为对策论(Game Theory)、赛局理论等,既是现代数学的一个新分支,也是运筹学的一个重要学科。接着推,对面也只能是把{2,2}变成{1,2},因为变成{1,2}就输了,肯定是迫不得已取的第一堆,只能这么做。好像又循环了,我们可以发现,当两堆相同时,无论对面怎么取,我们在另一堆模仿,做相同操作,必赢。那么反过来,两堆不同,就有先手必赢,先手一步把多的那堆变成和少的那堆一样多,赢了。用着前人的结论,却不知前人的想法,我认为,现有SG,后有NIM游戏正解。
2024-05-03 11:04:26
604
3
原创 论组合数:胎教级教学
(1+x)^a等价于(1+x)^a0((1+x)^p)^a1......((1+x)^(p^k))^ak (我们发现展开后有k位,k取决于log(p,a)即以p为底a的对数,可算时间复杂度)可得原式即(1+x)^a0((1+x)^p)^a1......((1+x)^(p^k))^ak可化为。把p消掉则有C(bk,ak)为(1+x)^(p^k*ak)中x^(p^k*bk)的系数。C(bk/p,ak/p)为(1+x)^(p^k*ak)中x^(p^k*bk)的系数。
2024-05-02 11:27:09
1183
2
原创 论高斯消元
可以发现第一行满足要求,不会影响后面的,同时,后面的也形成了一个规模为n-1的更小问题。等价,即未知数不变,也就是使最后的解带入其中可以使等式成立,再说简单点就是不出错。最后的逆推,枚举每一行,在枚举下面的行,依次消掉这行每个系数,最后常数项为解。即第一行有n个,第二行有n-1个,第n行有1个,同时保证等价于原方程组。高斯消元的应用还很多,但都是线性代数方面的,短期之内学不会,所以作者。可以发现,最后消元完成,即变为阶梯状,只需回推就行。1第1行第1项系数为1,设第x行第1项系数为a。
2024-05-01 13:45:28
1450
1
原创 论中国剩余定理(CRT)
对于每个没乘上乘法逆元的ci(即公式中的Mi)只要用M/mi就可以,这样直接优化掉了一维时间复杂度,特别快,不怕超时。本文将介绍中国剩余定理(即CRT),前置知识为同余运算和乘法逆元,如果不会可以看我关于乘法逆元的博客。所以说,学算法可以直接看公式,但是一定要自己推一遍,要不然特别抽象,能看懂就怪了。(顺便说一下,因为CRT极快,所以求逆元甚至可以直接枚举,但是不推荐这么做)可是当初看CRT的时候都觉得难,不会,人是会进步的,我在这里叕。现在,得出的结果和公式略有不同,公式先求出了mi的乘积M。
2024-04-23 20:22:16
443
1
原创 论扩展欧几里得
我们反推上一轮,y = x,x = x-(a/b)*y(此处不能直接写代码里,要存原有x,y!这时b = 0,y是什么不重要了,乘上0都是0,直接设y = 0,就可以在回归时求x,y。如果b为gcd(a,m)倍数则b+m*z是gcd(a,m)倍数,方程有解。当a mod b = 0时,由于xy互质,y = 1,b = d。可根据exgcd求出x,y使a*x+m*y = gcd(a,m)否则令a = b,b = a mod b递归。如果a mod b = 0,最大公约数取b。即ax = gcd(a,b)
2024-04-20 17:34:57
272
1
原创 论乘法逆元
若整数 b,m互质,并且对于任意的整数 a,如果满足 b|a,则存在一个整数 x,使得 a/b≡a×x(modm),则称 x为 b 的模 m乘法逆元,记为 b^−1(mod m)。初中数学告诉我们,a/b = a*(1/b)(b分之1) = b^-1(b的-1次方)(此处参考除以一个数等于乘以它的倒数)然后,假设a和b都非常大,形如(a/b)%m的算法有没有同余运算公式,容易丢失精度造成答案错误,但是乘法有......这里设p为b和m的最大公约数,即gcd(b,m),且p不等于1,设x为b的乘法逆元。
2024-04-13 16:39:39
504
3
原创 线性筛(c++)
所以我们可以空间换时间,把x的最小质因子存起来,因为x就是被它的最小质因子标记的,这个时候直接把最小质因子存起来,由判等代替取模,常数小了很多,增加了空间复杂度,但是不会MLE。如果这个数是合数,那么这个合数也可以表示为若干个数的乘积,如果能,则继续递推,如果不能,这个数为质数,与设定冲突,所以这个合数可以表示为质数的乘积。温馨提示,本文介绍作者自主制作的线性筛,用于求出质数,时间复杂度约等于传统线性筛,但因为内层循环有取模运算,常数较大,不建议比赛使用,在文章结尾会介绍传统线性筛。
2024-04-11 12:59:40
733
4
原创 关于floyd遍历顺序为什么是kij
众所周知,floyd是用来求多源最短路(即有多个源点)的算法,算法的主要思想是在i,j两点间找一点k,使i,j经过k的路径更短,更新i到j的最短路径(具体请看图1)最后补充一点,图2中的数据用ijk的floyd可以过,因为ijk不可能按这个顺序遍历,不能直接就i = 1,j = 5,k = 4,只是为了简单易懂出了这组数据。你可以理解成动态规划,遍历是要有顺序的,把i到j的最短路看作一个状态,要用到的状态并不全,有的还并未求出,就导致了状态转移方程里包含无穷大。但是,如果数据范围特别大呢?
2024-03-19 19:33:52
331
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人