
模板
life4711
这个作者很懒,什么都没留下…
展开
-
最小树形图(有向图的最小生成树)朱刘算法
http://baike.baidu.com/view/5944982.htm?fr=aladdin原创 2014-07-20 17:20:59 · 1895 阅读 · 0 评论 -
康拓展开及应用
题目:给出n个互不相同的字符, 并给定它们的相对大小顺序,这样n个字符的所有排列也会有一个顺序. 现在任给一个排列,求出在它后面的第i个排列.这是一个典型的康拓展开应用,首先我们先阐述一下什么是康拓展开。(1)康拓展开 所谓康拓展开是指把一个整数X展开成如下形式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[2转载 2015-09-25 15:42:09 · 682 阅读 · 0 评论 -
LCA最近公共祖先 在线算法和离线算法 模板
原理讲解:http://dongxicheng.org/structure/lca-rmq/在线算法模板:/**LCA在线算法O(nlogn)主函数调用:init();tot=0,dir[1]=0;dfs(1,1);ST(2*n-1);int lca=LCA(u,v);*/#include #include #include #include #inclu原创 2015-03-01 17:23:53 · 1396 阅读 · 0 评论 -
强连通分量+缩点(记录所缩点的个数)
#include #include #include #include using namespace std;#define M 10005#define N 105struct note{ int v,next;}edge[M];int head[N],dfn[N],low[N],belong[N],index,ip,cnt_tar,count[N];stack原创 2014-06-29 17:19:06 · 1121 阅读 · 0 评论 -
高精度加法乘法类
/**如何用:1、变量声明:可以给初值,如:BigInt ans=100; 可以补给初值(默认为0),如BigInt ans;2、计算:可以连个BigInt对象相乘,相加;ans+ans*ans; 也可以和整数相乘相加,如:ans+78*ans;*/struct BigInt { const static int mod=100原创 2015-05-10 21:31:19 · 1010 阅读 · 0 评论 -
哈希表的构建与查询
#include #include #include using namespace std;const int maxn=2500*2500+3;const int maxd=15;const int seed=2500*2500+3;//是一个大素数typedef long long LL;struct HASH//哈希表{ int head[seed]; i原创 2014-08-03 20:37:53 · 1824 阅读 · 0 评论 -
拓扑排序模板
#include #include #include #include #include using namespace std;const int maxn=30;int head[maxn],ip,indegree[maxn];int n,m,seq[maxn];struct note{ int v,next;} edge[maxn*maxn];void原创 2015-01-25 19:55:25 · 4594 阅读 · 2 评论 -
KMP算法
http://blog.youkuaiyun.com/v_july_v/article/details/7041827///未经优化的kmp数组void GetNext(char* p,int next[]) { int pLen = strlen(p); next[0] = -1; int k = -1; int j = 0; while原创 2015-04-08 16:58:41 · 617 阅读 · 0 评论 -
KM算法——二分图的最佳匹配
/***************************************************************************************************************************************************KM算法模板C++作用: 求二分图的最佳匹配注意: (1)for (i:1原创 2014-12-03 20:24:33 · 1280 阅读 · 0 评论 -
求无向图的割点和桥
/*** 求 无向图的割点和桥* 可以找出割点和桥,求删掉每个点后增加的连通块。* 需要注意重边的处理,可以先用矩阵存,再转邻接表,或者进行判重* 调用solve输出割点数,全局变量bridge记录边的个数*/#include #include #include #include using namespace std;const int maxn=10010;co原创 2015-02-27 10:27:45 · 2585 阅读 · 0 评论 -
2-SAT 模板
/*==============================================*\ | TwoSAT | INIT: init(n);addedge(u,v);节点编号0~n-1 | CALL: add_clause(x,xval,y,yval) x=xval or y=yval | add_con(x,xval) x=xval | s原创 2014-06-30 17:06:52 · 2769 阅读 · 0 评论 -
网络流 Dinic算法求最大流模板
#include#includeusing namespace std;const int oo=1e9;/**oo 表示无穷大*/const int mm=111111;/**mm 表示边的最大数量,记住要是原图的两倍,在加边的时候都是双向的*/const int mn=999;/**mn 表示点的最大数量*/int node,src,dest,edge;/**node 表示原创 2014-06-11 09:53:25 · 1007 阅读 · 0 评论 -
二分图的最大匹配的匈牙利算法
以前做二分图的题目都是用原创 2014-10-06 16:10:15 · 735 阅读 · 0 评论 -
单源最短路spfa模板(stl更新版)
#include #include #include #include #include using namespace std;const int INF=0x3f3f3f3f;const int maxm=511111;const int maxn=111111;struct EdgeNode{ int to; int w; int next;原创 2014-09-22 11:44:15 · 2075 阅读 · 0 评论 -
后缀数组模板
#include #include #include #include using namespace std;const int maxn=211111;/******************************************************************** 后缀数组 Suffix Array** INIT:solver.call_fun(c原创 2014-08-04 20:13:35 · 791 阅读 · 0 评论 -
费用流模板 (最大最小费用流)
shen顾名思义,费用流就是有费用的网络流,而一般费用流指用于解决带费用的最大流,即最小费用最大流和最大费用最大流那么费用流的模型是怎样的呢?简单的模型如下:好吧,还是这个图,只是现在的水管是收费的了,按流量计(貌似澡堂的一般按时间计啊= =)那么费用流与最大流有什么关系呢?其实最大流就是费用流的一种特例,也就是费用全为零的情况,你可以试试用费用流的模板来做最大流,原创 2014-06-12 12:16:48 · 1561 阅读 · 0 评论 -
各类排序算法的c++实现
#ifndef SORT_H#define SORT_H#include #include using namespace std;// 1.直接插入排序templatevoid InsertSort(ElemType data[], int n);// 2.折半插入排序templatevoid BInsertSort(ElemType data[], int n);// 3转载 2016-04-12 19:10:40 · 970 阅读 · 0 评论