模板
DeathWH
这个作者很懒,什么都没留下…
展开
-
二分图最大权匹配 模板
/****************************************************** 二分图最佳匹配 (kuhn munkras 算法 O(m*m*n)). 邻接矩阵形式 。 返回最佳匹配值,传入二分图大小m,n 邻接矩阵 mat ,表示权,match1,match2返回一个最佳匹配,为匹配顶点的match值为-1, 一定注意m<=n,否则循环无法终止,最小权匹配可将全原创 2015-08-18 20:05:23 · 309 阅读 · 0 评论 -
dinic 模板
void addedge(int u,int v,int c) { e[cnt].v=v; e[cnt].c=c; e[cnt].next=head[u]; head[u]=cnt++; e[cnt].v=u; e[cnt].c=0; e[cnt].next=head[v]; head[v]=cnt++; } int dfn[3000原创 2015-08-18 20:11:43 · 268 阅读 · 0 评论 -
斯特林数 组合数
///斯特林数 dp[0][0] = dp[1][1] = 1; for(int i = 2;i<N;i++){ dp[i][1] = dp[i-1][i-1]; for(int j = 2;j<=i;j++){ dp[i][j] = (dp[i][j-1] + dp[i-1][j-1]) % MOD;原创 2015-08-18 20:11:02 · 527 阅读 · 0 评论 -
线段树的两种查询方式
int query(int l,int r,int id,int ll,int rr) { if(ll<=l&&r<=rr) { return tree[id].maxn; } int ans=-1; int mid=(l+r)>>1; if(mid>=ll) { ans=max(ans,query(l,mid原创 2015-08-18 20:10:29 · 418 阅读 · 0 评论 -
强连通分量 模板
忘了哪道题了,直接发全部代码,需要时改着用。 #include #include #include #include #include using namespace std; int m,n,k,cas; int x,y; vector ans; int t; vector e[11000];/// vector be[11000]; int sco[6000]; int belong[110原创 2015-08-18 20:09:41 · 356 阅读 · 0 评论 -
割点 割边 模板
int dfn[M],low[M],head[M],vis[M]; bool cut[M]; int e,n,cnt,root; struct E { int to,nxt; }edge[M*M]; void addedge (int cu,int cv) { edge[e].to = cv; edge[e].nxt = head[cu]; head[cu] =原创 2015-08-18 20:06:46 · 469 阅读 · 0 评论 -
后缀数组 模板
const int maxn=500000; char str[maxn]; int wa[maxn],wb[maxn],wv[maxn],wn[maxn],a[maxn],sa[maxn]; int cmp(int* r,int a,int b,int l) { return r[a]==r[b]&&r[a+l]==r[b+l]; } ///n为字符串长度,m为字符的取值范围,r为字符串原创 2015-08-18 20:07:35 · 290 阅读 · 0 评论 -
费用流 模板
void addedge(int u,int v,int c,int w) { e[cnt].v=v; e[cnt].c=c; e[cnt].w=w; e[cnt].next=head[u]; head[u]=cnt++; e[cnt].v=u; e[cnt].c=0; e[cnt].w=-w; e[cnt].next=hea原创 2015-08-18 20:06:05 · 324 阅读 · 0 评论 -
sap 模板
#define MAXN 1111 //邻接表要开边数的2倍 struct Edge{ int v,cap,next; }edge[MAXN]; int level[MAXN];//标记层次(距离标号) //间隙优化,定义gap[i]为标号是i的点的个数 //在重标记i时,检查gap[level[i]],若减为0,这算法结束。 int gap[MAXN]; int pre[MAXN]原创 2015-08-18 20:04:12 · 383 阅读 · 0 评论 -
bzoj 1036 树链剖分 迭代 模板
#include #include #include #include #include using namespace std; const int N=30010; int n,m,tot,head[N],next[N*2],to[N*2],val[N],pre[N],dep[N],q[N],size[N],son[N],top[N],w[N],id[N]; int MAX[N<<2],sum原创 2015-08-19 12:53:03 · 331 阅读 · 0 评论