
图论
图论各种模板
martinue
攻城狮
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
求割边模板(tarjan)
网上几乎没有求割边的代码…所以我写了个。 写的比较简洁,用的前向星,求割边,输出的地方表示一条割边。 const int N=110; struct data { int to,next; } tu[N*N]; int head[N],low[N],dfn[N]; int ip; int step; void init() { ip=0; step=1;///遍历的原创 2016-06-07 20:20:13 · 1188 阅读 · 0 评论 -
最短路模板(floyed,spfa)
floyd: for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) tu[i][j]=min(tu[i][j],tu[i][k]+tu[k][j]); floyd判断最小环: int min0=maxn; for(int k=1;k<=n;k原创 2016-06-12 20:50:49 · 1302 阅读 · 0 评论 -
二分图匈牙利算法模板
最大匹配数:最大匹配的匹配边的数目 最小点覆盖数:选取最少的点,使任意一条边至少有一个端点被选择 最大独立数:选取最多的点,使任意所选两点均不相连 最小路径覆盖数:对于一个 DAG(有向无环图),选取最少条路径,使得每个顶点属于且仅属于一条路径。路径长可以为0(即单个点)。 定理1:最大匹配数 = 最小点覆盖数(这是 Konig 定理) 定理2:最大匹配数 = 最大独立数 定理3:最小原创 2016-05-31 20:13:57 · 1528 阅读 · 0 评论 -
最小费用流模板
和最大流模板对比着看:最大流模板(Dinic) 贴上最小费用流模板: const int oo=1e9; const int mm=11111111; const int mn=888888; int node,src,dest,edge; int ver[mm],flow[mm],cost[mm],nex[mm]; int head[mn],dis[mn],p[mn],q[mn]原创 2016-05-30 18:02:58 · 3456 阅读 · 0 评论 -
最大流模板(Dinic)
和最小费用流模板对比着看:最小费用流模板 贴上最大流模板: #include #include using namespace std; const int oo=1e9; /**oo 表示无穷大*/ const int mm=111111111; /**mm 表示边的最大数量,记住要是原图的两倍,在加边的时候都是双向的*/ const int mn=999; /**mn 表示点的最大数量*/ int node,src,原创 2016-05-30 18:01:11 · 2506 阅读 · 0 评论 -
tarjan模板(缩点,求有向图强连通分量)
整理出了这个tarjan模板,具体数组的功能代码都有注释。 const int N=100010; struct data { int to,next; } tu[N*2]; int head[N]; int ip; int dfn[N], low[N];///dfn[]表示深搜的步原创 2016-05-04 15:53:49 · 3263 阅读 · 0 评论 -
求割点模板(tarjan算法思路)
想看更多模板,请点击:http://blog.youkuaiyun.com/martinue/article/category/6268283 贴上求割点模板: const int N=110; struct data { int to,next; } tu[N*N]原创 2016-05-04 14:08:47 · 2253 阅读 · 2 评论 -
KM算法模板
这个模板是图论书上的那个,书上的代码有错误,在网上各种查找之后finally把这个模板搞对了!match[]数组保存匹配上的左右集合,是对应坐标的,在函数里面开的那个l[]数组是存每个点的具体匹配流量。 const int inf=1e9,maxn=510; int KM(int m,int n,int tu[][maxn],int *match1,int *match2) { int原创 2016-04-26 21:18:23 · 2926 阅读 · 0 评论 -
poj1273(最大流)
Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover patch. This means that the clover is covered by water for awhile and takes quite a long time to原创 2015-08-23 12:21:02 · 609 阅读 · 0 评论 -
poj3159(spfa)
Description During the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teacher brought the kids of flymouse’s class a large bag of candies and had flymouse distr原创 2015-08-20 19:08:41 · 556 阅读 · 0 评论 -
hdu1599(floyd算法讲解)
Description 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一条这样的路线,并且花费越少越好。 Input 第原创 2015-08-19 21:32:50 · 1508 阅读 · 2 评论 -
hdu2063二分图(匈牙利算法模板)
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 16349 Accepted Submission(s): 7159 Problem Description RPG girls今天和大家一起去游乐场玩原创 2016-03-10 10:17:30 · 493 阅读 · 0 评论 -
poj2438(哈密顿图)
Children's Dining Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4438 Accepted: 642 Special Judge Description Usually children in kindergarten like原创 2016-03-19 20:00:55 · 572 阅读 · 0 评论 -
poj2230(欧拉回路模板)
Watchcow Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 6887 Accepted: 3004 Special Judge Description Bessie's been appointed the new watch-cow for原创 2016-04-11 19:54:27 · 1469 阅读 · 6 评论 -
最小生成树模板(prim前向星)
别人都是先学prim再学kruskal,我刚好反了。。。。 bool p[maxn];///maxn是点的个数,p记录状态 int dist[maxn];///dist记录最短边长int pre[maxn];///pre记录连接信息void prim(int n){ for(int i=1; i<=n; i++)dist[i]=mmax; for(int i=head[1]; i!=-1原创 2016-04-11 21:48:51 · 818 阅读 · 0 评论 -
hdu4411(最小费用流)
Arrest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1742 Accepted Submission(s): 691 Problem Description There are (N+1) citi原创 2016-04-12 19:29:05 · 669 阅读 · 0 评论