
算法
sjs_caomei
学进去,记下来,会实践!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分治与归并
分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。就像前面的我说过的二分查找,也有类似的思想。其实,学习中也有许多类似的问题可以用到分治与归并,快排与归并排序就是这样。下里面容我记录一下我昨天下午敲的快排与归并的代码://快排 #include<iostream>using...原创 2018-08-09 10:12:36 · 304 阅读 · 0 评论 -
中国剩余定理学习
中国剩余定理 在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?”这个问题称为“孙子问题”,该问题的一般解法国际上称为“中国剩余定理”。具体解法分三步:找出三个数:从3和5的公倍数中找出被7除余1的最小数15,从3和7的公倍数中找出被5除余1 的最小数21,最后从5和7的公倍数中找出除3余1...转载 2018-09-13 10:37:01 · 409 阅读 · 0 评论 -
树链剖分的学习记录
原文地址:https://www.cnblogs.com/ivanovcraft/p/9019090.html先来回顾两个问题:1,将树从x到y结点最短路径上所有节点的值都加上z这也是个模板题了吧我们很容易想到,树上差分可以以O(n+m)的优秀复杂度解决这个问题2,求树从x到y结点最短路径上所有节点的值之和lca大水题,我们又很容易地想到,dfs O(n)预处理每个节点的di...转载 2018-09-11 17:11:11 · 204 阅读 · 0 评论 -
2018暑期ccpc网络赛总结
从12:00到17:00,是这次网络赛的时间。我与小伙伴们约好在食堂来一场惊心动魄的脑脑裂比赛。从11:00开始准备,吃饭,预热,开始答题。由于以前了解过ACM,也参加过4C,所以也有一些经验吧。只是第一次,本以为是ccpc,中国的,可以有点中文题目,没想到全是英文题,让我这样的英文渣额。。。不过还好,能读懂一些的!煎熬中度过,漫度中煎熬。一些题似懂非懂,有思路,但数据范围的卡壳,导致更换...原创 2018-08-25 18:35:51 · 783 阅读 · 0 评论 -
链式前向星(静态邻接表)存储图及简单的最短路径(dijkstra+spfa)
链式前向星,也叫静态邻接表,今天我讲的是关于图的东西,所以都以图的角度去看待这个较优化的存储结构。存图优缺点存图的时候,链式前向星是一种介于邻接矩阵和和邻接表的一种存储结构。邻接矩阵存图一般都用这个呀!不过啊,当遇到稀疏图的时候,顶点特别多,而边就那么几条,空间浪费必然很大,所以我们又想到了邻接表邻接表邻接表(未优化过的链式前向星)是最常用存储结构之一。 但是 vector...原创 2018-08-29 13:42:09 · 1402 阅读 · 0 评论 -
GCD 线段树+树状数组维护
给定一个长度为N的数列A,以及M条指令 (N≤5*10^5, M<=10^5),每条指令可能是以下两种之一: “C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d。 “Q l r”,表示询问 A[l],A[l+1],…,A[r] 的最大公约数(GCD)。输入格式 第一行两个整数N,M,第二行N个整数Ai,接下来M行每条指令的格式如题目描述所示。输出格式 ...转载 2018-08-31 14:30:13 · 572 阅读 · 0 评论 -
kmp专题
kmp即字符串匹配,时间复杂度O(M+N)。核心为求匹配的字符串的next[]数组(以当前位置结束的最长前缀的位置),代码如下:void getnext(){ int i=0,j=-1,len=strlen(str2); a[0]=-1; while(i<len) { if(j==-1||str2[i]==str2[j]) a[++i]=++j; ...原创 2018-08-18 17:53:16 · 374 阅读 · 0 评论 -
判断素数与欧拉筛
对于一个数,判断是否为素数,按照性质暴力枚举每一个,时间复杂度就是O(n),今天,不讨论这个,讨论一下更高效的方法。一、这是我在一篇博客看到的方法,时间复杂度为O(sqr(n)/3):https://blog.youkuaiyun.com/huang_miao_xin/article/details/51331710(方法3)首先看一个关于质数分布的规律:大于等于5的质数一定和6的倍数相邻。例...原创 2018-08-15 19:35:23 · 928 阅读 · 0 评论 -
贪心+二分解决最大值最小、最小值最大问题
在刷题时,总会遇到求最大值最小,最小值最大问题,也许它会暗喻是这样的一个问题。对于这样的一个问题,你会发现用dp和枚举都会超时超内存,或者说很麻烦,所以这是一个比较简单的解题方式。二分逼近思想•对于难以直接确定解的问题,采取二分枚举+检验的思想.•已知解为x,验证x是否满足要求.•如果答案具有特定的范围,并且验证答案是否成立的函数具有单调性。则可以在范围内对答案进行二分验证,...原创 2018-08-07 16:03:00 · 10767 阅读 · 0 评论 -
浅谈dfs&bfs
dfs(深度优先搜索)bfs(广度优先搜索)前言作为初学者,可能会想,搜索吗,就是作用在图上啊,树上什么的算法。其实,搜索(这里主要说dfs和bfs),就是以一种特定方式,在大多数场景寻找真正想要结果的方式。而dfs就是以一种现已一种单一方式走到黑,然后通过回溯等得到答案的过程。而bfs则是先看有多少种方式可以走,然后先记录每一种方式,在一一按这种方式一层一层遍历,直到得到最后结果。这...原创 2018-08-06 16:01:16 · 911 阅读 · 0 评论 -
浅谈网络流(最大流,最小割,mcmf,最大匹配)
前言:对于网络流的基础知识,网上许多大佬解释得很透彻了,我在这里也不去挑战大佬权威了!这篇博客记录我一周学习网络流的学习笔记!以后还会逐渐完善!一、最大流 最大流定理:如果残留网络上找不到增广路径,则当前流为最大 流;反之,如果当前流不为最大流,则一定有增广路径。用最大流的增广路经求二分图匹配:求二分图匹配的过程就是求最大曾广路的问题,而最大流定理就是将两者之间联系...原创 2018-10-03 13:28:45 · 2123 阅读 · 0 评论