算法入门系列
文章平均质量分 89
质量有保证
角落的秋天
在财经大学读计算机的小伙子,已毕业,GitHub: https://github.com/wintercoder
展开
-
素数筛选法
素数筛选有两种,一种是普通的筛选,O(nlognlogn)依据是:1).若X是素数,则X的倍数都不是素数2).若X不是素数,则X肯定在[1,X)之间被筛选掉。即存在Y,使得k*Y=X,然后Y根据推理1) 判定X为非素数。=》若X未被事先筛选掉则X为素数由当前的去筛选后面的#include #include #include using namespace st原创 2015-07-22 10:17:44 · 2844 阅读 · 3 评论 -
Manacher算法 - 最长回文子串
如题,求字符串S的最长回文子串,暴力就不说了。Manacher复杂度:O(n)。首先,求回文的话奇数长度字符串和偶数长度字符串处理方式不同,为解决该问题,我们在字符串S每个字符后加上分隔符'#',同时为了减少边界判断,在字符串的最前面加个'$#',当然字符串本身不能出现过'$'和'#'。abcbaaaabbc$#a#b#c#b#a#a#a#a#b#b#c#变量说明:id: 目前已知的最长回文的...原创 2016-03-13 17:43:47 · 636 阅读 · 0 评论 -
博弈のSG函数
Sprague-Grundy原创 2015-06-12 15:14:46 · 652 阅读 · 0 评论 -
BST-二叉查找树
二叉查找树相比AVL和红黑树简单多了,在删除时无需旋转,但树高不平衡,有可能出现树高 = 结点树的情况,本文介绍其C/C++代码实现。原创 2016-08-25 17:17:36 · 1036 阅读 · 0 评论 -
最短路的Bellman-Ford算法 【判断有无负权环】
Bellman-Ford算法是一种求单源最短路算法,时间复杂度:OPOJ 3259 例题原创 2014-08-20 22:15:19 · 1434 阅读 · 0 评论 -
Sublime Text 配置C++运行,带黑窗口,支持中文[windows]
Sublime如此强大,怎能没有编译?原创 2015-07-30 10:06:56 · 2195 阅读 · 3 评论 -
hash入门题
南阳理工OJ题目描述在某一国度里流行着一种游戏。游戏规则为:现有一堆球中,每个球上都有一个整数编号i(0<=i<=100000000),编号可重复,还有一个空箱子,现在有两种动作:一种是"ADD",表示向空箱子里放m(0<m<=100)个球,另一种是"QUERY”,表示说出M(0<M<=100)个随机整数ki(0<=ki<=100000100),分别判断编号为ki 的球是否在这个空原创 2014-08-23 18:02:07 · 894 阅读 · 2 评论 -
最小生成树
2018-02-19 23:48:26现在看,以下内容乱七八糟,什么鬼玩意,大家别看了,现在没删是方便我自己回顾代码题目:http://acm.hdu.edu.cn/showproblem.php?pid=1233生成树:对于一个图G(V,E),选一个点集为V,边集为E' ∈ E的子图称为生成树。最小生成树:一个图的生成树有很多,里面权值和最小的生成树为最小生成树(仅有一个)。求解方法有两个:Pr...原创 2015-08-05 11:54:38 · 537 阅读 · 0 评论 -
并查集
并查集作用:将众多元素按条件构造成一个集合,举个不好的例子,1,2,3,4,5都是数字而abc是字母,所以把他们分成2个集合,比较好理解的例子是百度上那个:若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。并...原创 2014-07-23 18:50:11 · 882 阅读 · 0 评论 -
最短路径详解
Floyd-Warshall原理实现Dijkstra简单粗暴的原理过程实现Spfa原理证明实现Bellman-Ford最短路径:一个图里有很多边,每条边有权值,两点之间的权值最小的路径。 负权回路:一个环(某点出发走了一圈还回到原点)里的权值和为负数(环里的每个权值可正可负,但和为负)。 首先,存在负权回路的图里没有最短路,因为只要一直走这个回...原创 2016-05-05 01:57:24 · 23542 阅读 · 2 评论 -
第K大/Top K及其简单实现
转载请注明出处:http://blog.csdn.net/u012469987/。见网上第K大多数只给思路,没给实现,我就来填坑了。update 2017-09-23 有同学反馈说面试遇到这个题,博文给了助攻,哈预料之中。Top K 和第K大基本等价,以下我们以第K大为例且假设第K大一定存在,Top K 可以在第k大基础上稍微改动获得。 本文介绍6种方法,只考虑实现功能,不做异...原创 2016-08-14 19:28:18 · 6152 阅读 · 2 评论 -
KMP算法
KMP算法:D.E.Knuth,J.H.Morris和V.R.Pratt三人发明,用于字符串匹配,即在一个字符串里找另外一个字符串第一次出现的位置。俗称看毛片算法,因为看一段时间就懂,过几天就忘。KMP虐我千百遍,我却待她如初恋。概念模式串p:需要查找的字符串。原串s:模式串在哪找呢?在原串里。next数组,是一个只根据模式串p求出来的数组,作用是匹配过程中若p[j]与原串s的s[i]不相同则 j...原创 2015-07-29 20:53:24 · 882 阅读 · 0 评论 -
线段树入门&lazy思想
线段树原创 2014-11-21 20:42:47 · 9577 阅读 · 8 评论 -
快速幂&幂模
快速幂高效率求a的n次方(n>0),时间复杂度:O(log₂n),常规幂O(n)递归版递归版的很好理解先就按原理直接敲出来(递归总有个终点,a的0次方等于1)int qpow(int a,int n){ if(n==0) return 1; if(n%2==0) return qpow(a,n/2)*qpow(a,...原创 2014-07-27 02:15:20 · 1441 阅读 · 0 评论 -
网络流-Dinic
#include #include #include using namespace std;#define REP( i , n ) for ( int i = 0 ; i < n ; ++ i )#define FOR( i , a , b ) for ( int i = a ; i <= b ; ++ i )#define CLR( a , x ) memset ( a , x原创 2015-08-09 00:31:16 · 552 阅读 · 0 评论 -
树状数组
题目链接原创 2014-08-10 23:42:08 · 849 阅读 · 0 评论 -
扩展GCD
扩展GCD(欧几里得):求方程ax+by=gcd(a,b)中的x,y原创 2014-09-04 01:36:01 · 4645 阅读 · 0 评论 -
LIS-最长递增子序列
最长递增子序列是指在一个给定的数值序列中,找到一个子序列,使得这个子序列元素的数值依次递增,并且这个子序列的长度尽可能地大,注意子序列中的元素在原序列中不一定是连续的 。原创 2016-07-24 17:38:02 · 508 阅读 · 0 评论 -
Tire-字典树
字典树:一种利用字符串前缀来节省空间的树结构。例如,我需要保存"acm","acca","usb"三个字符串,可以利用"acm"和"acca"的"ac"这个公共前缀节省空间。见下图树上总有一个根结点,一般不存值,字符从根结点起到叶结点组成 字符串。代码实现:1)结点定义:cnt变量是该结点存的值,具体存什么看具体情况。每个结点都有一个指针数组,保存它所指向的结点,数组大小就看字原创 2015-02-18 01:19:23 · 1625 阅读 · 0 评论 -
字符串排序/基数&Trie
常规O(nlogn)就不谈了原创 2016-08-30 17:29:11 · 905 阅读 · 0 评论 -
随机算法-模拟退火
模拟退火算法:爬山算法的改进原创 2016-04-22 17:22:23 · 2419 阅读 · 0 评论 -
二分答案法、三分法
二分大法好原创 2016-03-15 16:56:43 · 16101 阅读 · 1 评论 -
LCA-最近公共祖先-Tarjan解法
LCA的各种解法见:July的《程序员编程艺术:面试和算法心得》电子版(非官方)。 下面只讲Tarjan算法解决这个问题的方法,本质上仅仅是普通的dfs而跟Tarjan算法是没关系的,只是因为思路像所以这么说。它解决LCA是离线处理的,即等待全部输入完后一起处理再输出,而Tarjan好处在于查询次数再多也只需要遍历一次树。思路对树进行一次深搜遍历,遍历中做此操作:假设当前遍历到 ...原创 2016-05-03 16:24:59 · 2345 阅读 · 3 评论 -
排序代码-存放点
如题,就存下各种排序的代码,方便以后快速回忆,包含9种排序quickSort(data, 0, n - 1); 快排mergeSort(data, 0, n - 1); 归并heapSort(data, n); 堆排countSort(data, n); 计数bubbleSort(data, n); 冒泡selectSort(...原创 2018-03-12 18:30:38 · 464 阅读 · 0 评论