算法
Lpy_Now
学计算机的普通人,写点自己学过的东西来记录自己的经过
展开
-
常见数据排序算法
常见的数据排序算法可以大致分为两类:1.比较类排序2.非比较类排序 比较类排序算法主要是通过数据间的比较实现,其时间复杂度是无法突破O(nlogn)的 非比较类排序算法不是通过数据间的排序实现,其时间复杂度可以以线性完成,时间和速度会比非比较类排序算法更优...原创 2019-11-04 21:07:53 · 1480 阅读 · 0 评论 -
入门深度理解递归(一)
什么是递归?递归就是函数对函数自身的反复调用理论上来讲递归并不是很容易,去理解递归的过程反而比较重要我们需要有一个分而治之的思想,所谓分而治之就是将一个简单的问题分解成一个简单的问题的集合,比如对于 ab 我们可以将函数分解成 a(b-1) ,将问题逐步分解后可以得到当b=1时函数值为a,这就是分而治之的思想。首先从两数的乘法来理解函数的递归1.函数的乘法 首先看一段代码#includ...原创 2019-10-28 19:33:43 · 974 阅读 · 0 评论 -
分块算法详解
【快速处理】分块算法 分块算法———————————————————-1.思想如果我们需要对一个特定的序列进行操作,那么非常直观、简单的方法就是纯暴力(不,那叫模拟)。不过如果暴力能过的话,那就呵呵了。所以我们要想一些比较高能的数据结构——分块。相比线段树来说,分块算法比较难实现,但是只要深入理解,就可以实现了转载 2017-11-02 20:37:53 · 2654 阅读 · 1 评论 -
莫队算法详解
这名字···这个算法是由之前的国家队队长莫涛巨神(Orz….%%%64)发明的,所以尊称莫队算法。莫队算法事实上,莫队算法这种东西,应该叫做——一个优雅的暴力(引自Alan_Cty)传说中能解决一切区间问题的算法如果我们知道区间[L,R]的话,那就可以用莫队算法了。有一种经典的问题:给你一些不带修改的区间询问,要求快速回答显然,有一些我们可以通过线段树来完成,因为线段树是O(NlogN)的但是,线段转载 2017-11-02 20:33:41 · 1220 阅读 · 0 评论 -
树上差分详解
树上差分Max Flow NKOJ3605给定一棵有N个点的树,所有节点的权值初始时都为0。 有K次操作,每次指定两个点s,t,将s到t路径上所有点的权值都+1。 请输出K次操作完毕后权值最大的那个点的权值。 2≤N≤50,000 1≤K≤100,000对于每一次修改s,t,将s,t的权+1;将LCA(s,t)和father[LCA(s,t)]的权-1转载 2017-10-31 15:08:44 · 15376 阅读 · 1 评论 -
ST表详解
ST表学习 作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例举例:给出一数组A[0~5] = {5,4,6,10,1,12},则区间[2,5]之间的最值为1。方法:ST算法分成两部分:离线预处理 (nlogn)和 在线查询(O(1))。虽然还可以使用线段树、树状链表等求解区间最值,但是ST算法要比它们更快,而且适用于在线查询。(1)离线预处理:运用DP思想,用于求解区间最值,并保存到转载 2017-10-31 10:53:07 · 2981 阅读 · 0 评论 -
NOIP2004T3FBI树解题报告
原题见洛谷(https://www.luogu.org/problem/show?pid=1087) 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2^N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:1) T的根结点为R,其类型原创 2017-09-16 10:45:54 · 352 阅读 · 0 评论 -
NOIP2012Day2T1同余方程解题报告以及扩展欧几里得讲解
题目描述求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解。输入输出格式 输入格式:输入只有一行,包含两个正整数 a, b,用一个空格隔开。输出格式:输出只有一行,包含一个正整数 x0,即最小正整数解。输入数据保证一定有解。输入输出样例输入样例#1: 3 10输出样例#1: 7说明【数据范围】对于 40%的数据,2 ≤b≤ 1,000;对于 60%的数据,2 ≤b≤ 50,00原创 2017-08-29 01:09:45 · 780 阅读 · 0 评论