
模板
Rocky0429
我愿能朝着太阳生长,做一个温暖的人。
展开
-
最长上升子序列nlogn算法(poj 2533 && SDUT 1299)
这题目是经典的DP题目,也可叫作LIS(Longest Increasing Subsequence)最长上升子序列 或者 最长不下降子序列。很基础的题目,有两种算法,复杂度分别为O(n*logn)和O(n^2) 。A.O(n^2)算法分析如下: (a[1]...a[n] 存的都是输入的数) 1、对于a[n]来说,由于它是最后一个数,所以当从a[n]开始查找时,只存在长度为转载 2015-01-29 16:11:13 · 1071 阅读 · 0 评论 -
【模板】qsort和sort的详解和比较函数的区别
下面先对qsort和sort进行详细的解释,然后再将区别!(需要特别注意的就是qsort和sort的比较函数的写法,很容易出错)First qsort基本快速排序的方法,每次把数组分成两分和中间的一个划分值,而对于有多个重复值的数组来说,基本排序的效率较低。集成在C语言库函数里面的的qsort函数,使用三路划分的方法解决这个问题。所谓三路划分,是指把数组划分成小于划分值,等于划分转载 2015-01-02 17:45:59 · 1125 阅读 · 0 评论 -
网络流ISAP算法详解
PS:一开始学网络流用的是EK算法,后来看了紫书,说是要明白EK算法的实现,竞赛时最好用Dninc或isap,所以。。。求解最大流问题的一个比较容易想到的方法就是,每次在残量网络(residual network)中任意寻找一条从 s 到 t 的路径,然后增广,直到不存在这样的路径为止。这就是一般增广路算法(labeling algorithm)。可以证明这种不加改进的贪婪转载 2015-01-18 12:05:18 · 2824 阅读 · 0 评论 -
【模版】素数筛, 最大公约数(辗转相除法),最小公倍数
素数筛://数除了{2,3,5}为素数,其他的数可以写成6N,6N+1,6N+2,6N+3,6N+4,6N+5 N>=1 可以表示全部的数//6N,6N+2,6N+4都为偶数,不是素数,6N+3 == 3(2N+1) 不是素数,那么就只筛6N+1和6N+5就可以了int prime[1000000]={2,3,5};void is_prime(){ int i,j;原创 2014-08-19 19:14:38 · 1858 阅读 · 0 评论 -
【模版】简单哈希和哈希表处理冲突
哈希(Hash)算法就是单向散列算法,它把某个较大的集合P映射到另一个较小的集合Q中。数学原理听起来很抽象,在网上找到一个很生动的描述。我们有很多的小猪,每个的体重都不一样,假设体重分布比较平均(我们考虑到公斤级别),我们按照体重来分,划分成100个小猪圈。 然后把每个小猪,按照体重赶进各自的猪圈里,记录档案。如果我们要精确找到某个小猪怎么办呢?我们需要每个猪圈,每个小猪的比对吗? 当然不需要了。原创 2014-08-17 11:24:52 · 1415 阅读 · 0 评论 -
优先队列的使用(模板)
这个是转得网上的,由于不经常使用,偶尔用的时候还经常出错,所以记下来了,经常使用的已经用红色颜色标出来了 :在优先队列中,优先级高的元素先出队列。标准库默认使用元素类型的优先队列的第一种用法,也是最常用的用法:priority_queue qi;通过故示例1中输出结果为:9 6 5 3 2第二种方法:在示例1中,如果我们要把元素从小到大输出怎么办呢?这时转载 2014-11-15 16:44:18 · 2172 阅读 · 0 评论 -
【模版】快速排序,二分查找及其求其上下界函数
快速排序:#include void qsort(int a[],int l,int r){ int x=a[l]; int i=l; int j=r; if(l>=r) return ; while(i<j) { while(i=x) j--; a[i]=a[j];原创 2014-08-16 11:03:25 · 1477 阅读 · 0 评论 -
最短路算法 :Bellman-ford算法 & Dijkstra算法 & floyd算法 & SPFA算法 详解
好基友Cyb大神五天的呕心沥血,在此转载 2014-08-18 16:25:47 · 2402 阅读 · 0 评论 -
【模版】KMP算法中next数组的求法。
今天又重新复习了一下KMP原创 2014-06-05 20:36:54 · 1425 阅读 · 0 评论 -
趣写算法系列之--匈牙利算法(真的很好理解)
【书本上的算法往往讲得非常复杂,我和我的朋友计划用一些简单通俗的例子来描述算法的流程】匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。-------等等,看得头大?那么请看下面的版本:通过数代人的努力,你终转载 2014-08-15 16:56:50 · 5023 阅读 · 0 评论 -
【模版】并查集 及路径压缩
Ps:在网上看到的写的很好的并查集转载 2014-08-19 15:10:40 · 16870 阅读 · 1 评论 -
拓扑排序 详解+最小生成树(MST)详解 【普利姆算法 + 优先队列优化 & 克鲁斯卡尔算法】
好基友YanBaoC的另一篇巨作,又被我剽窃转载 2014-09-02 16:02:11 · 3064 阅读 · 0 评论 -
快速幂取模算法【模板】
快速幂取模其实是a^b%c,这就是著名的RSA公钥加密的方法,当a,b都很大的时候,直接求是不可取的,所以就用到了快速幂取模。首先你得明白他的原理,其实是用到了二分的思想,把b按照二进制展开b = p(n)*2^n + p(n-1)*2^(n-1) +…+ p(1)*2 + p(0)。其中p(i) (0所以此时a^b = a^ (p(n)*2^n + p(n-1原创 2015-01-01 14:24:57 · 8836 阅读 · 0 评论