模板
文章平均质量分 67
清风小竹
吉首大学14网工
展开
-
次小生成树模板
次小生成树原创 2015-08-10 16:17:06 · 511 阅读 · 0 评论 -
二分图最大匹配算法-Hopcroft-Karp模板
#include #include const int N=500,M=500,INF=0x3f3f3f3f; int dx[N],dy[M],sx[N],sy[M],p[N],q[N],a[N][M],l,r,n,m,d; //dx为左边点在增广路径中的距离,dy同理;sx为左边点的匹配点,sy同理; //n为左边点数,m为右边点数,d为每次bfs中最大增光路集中的最长路径长度 int bfs原创 2016-03-22 15:43:58 · 419 阅读 · 0 评论 -
二分图最大匹配算法-匈牙利算法(Hungary)模板
#include #include const int N=1111; int a[N][N],match[N],p[N],n; int dfs(int u) { for(int i=1;i<=n;i++) { if(a[u][i]) { if(match[i]==-1||dfs(match[i])) { match[i]=u; return 1; }原创 2016-03-22 14:21:38 · 334 阅读 · 0 评论 -
输入输出挂
inline void in(int &res) { char c; while((c=getchar())'9'); res=c-'0'; while((c=getchar())>='0'&&c<='9') res=res*10+c-'0'; } inline void out(int x) { if(x>9) out(x/10); putchar(x%10+'0'); }原创 2016-03-22 13:51:43 · 250 阅读 · 0 评论 -
LIS(最长上升子序列)模板
int LIS(const int a[],int n) { int lis[n],pre[n],js=1; lis[1]=1; for(int i=2;i<=n;i++) { int l=1,r=js,m; while(l<r) { m=(l+r)>>1; if(a[lis[m]]<a[i]) l=m+1; if(a[lis[m]]>a[i]) r=m;原创 2015-12-16 14:11:01 · 303 阅读 · 0 评论 -
排序二叉树
#include #include #include struct node { int data; node *lc; node *rc; }; node* insert(node *p,int a) { if(p==NULL) { p=(node*)malloc(sizeof(node)); p->data=a; p->lc=NULL; p->rc=NULL; }原创 2015-10-10 17:18:46 · 264 阅读 · 0 评论 -
最小费用最大流
最小费用最大流原创 2015-08-18 20:32:02 · 312 阅读 · 0 评论 -
最小生成树(prim&kruskal)模板
最小生成树模板原创 2015-08-10 11:35:16 · 380 阅读 · 0 评论 -
最短路模板总结(不定时更新)
图论原创 2015-08-02 20:15:35 · 556 阅读 · 0 评论 -
矩阵结构体
参考文章:http://blog.csdn.net/shuangde800/article/details/8066698 const int N=1100; struct Matrix { int mat[N][N]; int n,m; void set_size(int row, int column){ n=row; m=column; }原创 2015-08-20 20:19:34 · 1859 阅读 · 1 评论 -
网络流模板
EK; void updata(int i,int flow) { while(pre[i]!=-1) { c[i][pre[i]]+=flow; c[pre[i]][i]-=flow; i=pre[i]; } } int bfs() { memset(p,0,sizeof(p)); memset(pre原创 2015-08-16 20:16:24 · 289 阅读 · 0 评论