acm_图论
文章平均质量分 66
lshacm
这个作者很懒,什么都没留下…
展开
-
LA3887 最小生成树 枚举最小边
题意:求树苗度=(最大边-最小边)最小的生成树结论:最小生成树也是最大边最小生成树枚举最小边(删除更小边即可),求最小生成树。出题思路:将最大和最小结合起变题1:求最小乘积生成树对每条边log后,求最小生成树即可变题2:f(最大边,最小边)最小/大的生成树,该函数是最大边的增函数仍然是枚举最小边,求最小/大生成树#include#include#includ原创 2015-01-24 18:25:37 · 366 阅读 · 0 评论 -
LA3211 Now or later
n架飞机,每架可选择两个着落时间。安排一个着陆时间表,使得着陆间隔的最小值最大。关键词:最小值最大:二分答案、2_sat判定设最小值是mid,则可行解中一定没有两架飞机着陆时间差#include#include#include#include#include#include#include#define ll long long#define INF 0x3f3f3f3原创 2015-01-02 01:49:00 · 391 阅读 · 0 评论 -
LA3713 Astronauts
分组问题。年龄平均值的可选择B和C组,每两个有矛盾的宇航员不能分在一组,求一组可能的分组情况关键词:分组问题:2sat做法:每个宇航员选择A/B,对应于true,选择C,对应于false,2sat问题:将每个元素的两个选择对应于true和false;将条件对应于子句xi:true/false or xj:true/false。本题中同组矛盾对应两个子句:(xi==1||xj==1)原创 2015-01-02 11:25:57 · 366 阅读 · 0 评论 -
LA4452 dfs及其应用(2-SAT)
题意:每个人最多对4个法案提意见,问是否存在一种方案,使得每个人的意见通过一半以上。若可以通过一半以上,输出每个方案可能的结果(一定通过/一定不通过/两个结果都有可能)思路:意见为1/2时,全部通过,意见为3/4时,至多否决一个意见,从而转化为“意见”型2-sat问题“意见”型变量1.先把意见用变量表示:把每个人的意见表示成数x的形式(x是某个布尔变量成立(x=2*y+1)/不原创 2015-01-23 23:44:17 · 365 阅读 · 0 评论 -
uva11396 dfs应用
题意:判断一个三度图(每个点的度均为3)是否可以分解成若干个爪形,每条边恰属于一个爪。思路:每个爪型的中心点标记为1,边缘点标记为1,可知每条边恰属于一个爪每条边的两端点不同时为0或1该图是二分图,转化为二分图判定问题#include#include#include#include#include#include#define maxn 400#define maxm原创 2015-01-23 20:59:27 · 313 阅读 · 0 评论 -
uva 10765 dfs及其应用
题意:一个无向连通图删除某点后分成的连通块个数成为该点的鸽子值。求鸽子值最大的m个点的鸽子值思路:1.鸽子值>1 该点是割点。2统计割点所连接的点双连通分量。tarjan算法求割点过程中,改标记割点为统计该点所连接的点双连通分量个数即可。#include#include#include#include#include#include#define maxn 10010原创 2015-01-23 21:42:23 · 291 阅读 · 0 评论 -
uva11354 最小瓶颈路及其应用
关键词:LCA,最小瓶颈路,树上路径问题询问任意两点间最小瓶颈路(最大边最小)法一:1.dp[u][v]:MST上u,v路径最小瓶颈路 O(n^2)2.每组询问输出dp[u][v] O(q)本题n最大可取50000,此法不可取法二:1.anc[u][i]:MST有根树中,u的第2^i个祖先;maxcost[u][i]:u到第2^i个祖先路径上的瓶颈(最长边) O(n*l原创 2015-01-13 12:19:07 · 527 阅读 · 3 评论 -
生成树相关问题
最小生成树的性质:1.切割性质:若所有边权值都不相同。设S是既非空集也非全集的V的子集,边e是满足顶点分别在S和V-S集合中的所有边中权值最小的一个,则G中的所有最小生成树都包含e。证明:设是连接S和V-S集合所有边权最短的边。若存在MST不包含,连接,形成一个环,环上至少有一条不是的边能够连接集合V和S-V,其权值比大,用替换后,MST变小,矛盾!因此所有MST都有边。2.回路性质:原创 2015-01-12 20:37:29 · 745 阅读 · 0 评论 -
二维最短路
关键词:二维最短路、dij+heap、spfa 题意:已知起点和终点为s和t,还已知一个集合内含有若干三元组(a,b,c).求不能连续经过a->b->c,从s到t的最短路径 解法:设d[u][v]:从s出发,到达“前继是u,当前节点是v”状态的最短路径 然后用spfa或dij+heap优化求解二维最短路径即可原创 2015-04-21 08:05:57 · 708 阅读 · 0 评论 -
Codeforces Round #302 (Div. 1) B Destroying Roads(最短路+枚举)
关键词:bfs求单源最短路径、O(n^2)枚举相交路径 题意:在一个有向图中删除尽量多的边使得s1->t1,s2->t2的最短路分别不大于l1和l2 解法: 1.bfs求单源最短路径。遍历所有的顶点,求出所有点源最短路 2.枚举两条道路的相交路径。相交路径仅加一次即可原创 2015-05-09 22:35:31 · 415 阅读 · 0 评论 -
图论基础算法(持续更新)
1.dfs性质int vis[maxn];//需要将vis数组清零vector g[maxn];void dfs(int u){ vis[u]=1; previsit(u);//在第一次遍历u之前的操作 for(int i=0;i<g[u].size();i++){ int v=g[u][i]; if(!vis[v]) dfs(v);原创 2014-12-31 00:43:34 · 1075 阅读 · 0 评论 -
hdu5296
题意:给定一颗边权树,动态地在点集中增加和删除点。求当前所在点集中使得所有点都连通的最小边权和。 解法: 首先介绍一个结论: 树上点u到以x和y为端点的链的最段距离可以在O(n)预处理和O(logn)时间复杂度内求出。原创 2015-07-21 21:44:17 · 325 阅读 · 0 评论 -
hdu5293
题意:已知树上的若干链< u,v>,每条链有一个权值w,求链不相交的最大权值和集合。原创 2015-07-22 22:23:04 · 972 阅读 · 0 评论 -
poj3728 The merchant
题意:求树中路径的最大正序数。多组路径询问。 1.用Tarjin算法将多组询问按照lca的不同分成若干类 2.用并查集来优化dp,不会重复访问同一节点。 值得注意的是dp[u]状态的含义在遍历到不同节点时会发生变化:当前询问状态下,u到最上回溯点的dp最优值 重点:Tarjin算法离线处理多组树链询问;树中动态dp状态设计原创 2015-08-17 12:23:30 · 328 阅读 · 0 评论 -
环上的DP
bzoj1040 骑士 bzoj2878 迷失园乐园bzoj1023 仙人掌图原创 2015-09-08 16:26:30 · 346 阅读 · 0 评论 -
网络流
网络流题原创 2015-08-22 23:05:31 · 355 阅读 · 0 评论 -
网络流2
有上下界sgu194 无源无汇可行流ZOJ3229 有源汇最大流SGU176 有源汇最小流原创 2015-09-29 14:04:57 · 266 阅读 · 0 评论 -
lca集锦
1.求树上两点距离 dis(a,b)=dis(a,root)+dis(b,root)-2*dis(lca(a,b),root) 2.求树上到达三点距离之和最小的点(重复路径重复计算)原创 2015-08-16 14:15:40 · 344 阅读 · 0 评论 -
hdu5154 判断有向图是否含环
关键词:拓扑排序---O(m)、队列#include#include#include#include#include#include#include#include#define ll long long#define sf scanf#define pf printf#define maxn 110#define INF 0x3f3f3f3f#define maxm原创 2015-01-03 22:19:47 · 560 阅读 · 0 评论 -
poj3592 有向有环图最长路
题意:有向有环图,求最长路(每个点权值仅算一次)做法:1.scc缩点,建立scc图 2.求scc图最长路(spfa)#include#include#include#include#include#include#include#include#define ll long long#define sf scanf#define pf printf#define ma原创 2015-01-03 16:17:21 · 3135 阅读 · 0 评论 -
acm_图论_最短路
关键词:最短路、枚举特殊路径无向路径,已知源点和汇点。路分两种,A路径可任意走,B路径仅能通过一条。求源点到汇点的最短路。做法:在A路径图中求源点到任意一点的最短路,和任意一点到汇点的最短路,由于路是无向的,所以只要分别求源点和汇点到任意一点的最短路径即可。dij算法恰好提供了求从某点出发到达图上任意一点的最短路径的方法。设S集合为已知的最短路集合,集合中每个元素由{u,d}组成。原创 2015-01-09 14:13:38 · 393 阅读 · 0 评论 -
LA4080 删边求最短路
关键词:最短路树、删边重求最短路删除任意一边,求新图任意两点最短路之和的最大值1.建立每个点的最短路树2.枚举删边,判断该边是否在最短路树中。在:删边后更改最短路树;不在:最短路树不变,即该点到任意一点的最短路不变最短路树作用:删边问题中降低复杂度原理:每个最短路树仅含n-1条边,降低了每个点的枚举量每个最短路树中有n-1条边,还有删边属于k的最短路树时,才需要重新求k的最原创 2015-01-09 17:25:50 · 1132 阅读 · 0 评论 -
uva11478 图的边权变化求极值
题意:一个有向图,边权可正可负。对每个顶点,定义H(d)操作:入边边权全部-d,出边边权全部+d,问是否存在若干操作H(d)后,所有边权>=0,若不存在,输出“No Solution”,若存在,求最终最小边的最大值,如果最小边权的最大值可以任意大,输出”Infinite"二分答案。题目转化为是否存在若干H操作,使得每条边的权值都>=x 。设对每个顶点u的H操作叠加后,为sum(u),则每条边都原创 2015-01-12 14:26:01 · 379 阅读 · 0 评论 -
LA5713 减小边权求MST
可以让一条边边权置零,求(置零边端点权值和/边权置零后MST)的最大值枚举所有边置零的情况。置零边确定后,端点权值和确定,因此题目转化为置零任意一边后,求MST1.先求原图MST2.预处理MST上任意两点u,v瓶颈dp[u][v] O(N*N)2.置零任意一边。若是树边,则mst减少d[u][v],即dp[u][v];若不是树边,则mst减少dp[u][v]。综上,置零边后,m原创 2015-01-13 02:16:00 · 313 阅读 · 0 评论 -
LA3561 平面图最大流
平面图,求从(0,0)到(m-1,n-1)的最大流/最小割本模型关键在于建图,不同题目的建图方法不同,建图原则如下:每个平面图G都有一个与它对偶的平面图G',满足以下性质:1.G'中的每个顶点对应于G中的每个面2.对于G中的每条边e1)e在G中属于两个面f1,f2,在G'中加入边f1'-f2'2)e在G中属于一个面f,在G’中加入自环边f1'-f1'G与G'的关系:原创 2015-01-12 19:59:43 · 502 阅读 · 0 评论 -
poj4006 增大边权求MST
增大边权,求MST,多组询问(只询问,不修改)做法:1.先求出原图MST,对树中每条边,预处理best[u][v]:删除边后u所在连通块和v所在连通块通过非树边连接的最短边长求best[u][v]前还要预处理dp[rt][u]:以rt为根的树,rt到以u为根的子树中所有点通过非树边连接的最短边长dp[rt][u]和best[u][v]都要通过dfs求出,具体求法见代码#in原创 2015-01-13 00:16:37 · 393 阅读 · 0 评论 -
poj1659 Frogs' Neighborhood
根据度数建立无向图(无重边)关键词:构造法原创 2014-12-31 02:28:40 · 341 阅读 · 0 评论 -
LA3523 Knights of the Round Table
建立反图后,转化为判断一个连通图中有多少个点不属于任何一个奇环关键词:反图、双连通分量所有点至少在一个奇环中该图不是二分图证明:若该图不是二分图,则一定存在一个奇环。进一步可以证明,任何不在此奇环中的点a,一定存在两条不相交的路径分别到达此奇环上的两点u和v,这样,a,u,v三点可以通过两个奇偶性相反的环连起来,因此a一定存在于一个奇环中。因此对于非二分图的双连通分量,所有点都至少在一个奇原创 2014-12-31 12:27:48 · 296 阅读 · 0 评论 -
poj1236 Network of Schools
1.有向图中至少从多少个点出发能到达图中所有点2.有向图中至少补充多少条边能够变成强连通图做法:1.求scc 2.统计scc图出入度(不必建立scc图)3.ans1=in_cnt,ans2=max(int_cnt,out_cnt) 强连通图特判#include#include#include#include#include#include#include#define l原创 2015-01-01 12:44:57 · 255 阅读 · 0 评论 -
poj2186 Popular Cows
有向图中,寻找所有点都能到达的点集大小做法:1缩点2.统计scc图的出度,出度为1的点仅有一个u,则ans=sccnum[u],否则ans=0姊妹命题:寻找能到达所有点的点集大小把出度统计改为入度统计即可#include#include#include#include#include#include#include#define ll long long#defin原创 2015-01-01 12:59:54 · 274 阅读 · 0 评论 -
LA5135 Mining Your Own Business
无向图上涂黑尽量少的点,使得任意删去一个点后,所有连通块中至少有一个被涂黑的点做法:1.缩点求bcc和割顶 2.仅有一个割顶的bcc中标记一个非割顶点,即为所求。#include#include#include#include#include#include#include#define ll long long#define INF 0x3f3f3f3f#define原创 2015-01-02 00:19:59 · 323 阅读 · 0 评论 -
LA4287 Proving Equivalences
在n点m边的由向图中增加尽量少的边,使得原图强连通原创 2015-01-01 00:29:21 · 297 阅读 · 0 评论 -
poj2553 The Bottom of a Graph
bottom(G)={v∈V|∀w∈V:(v→w)⇒(w→v)}.列举G点中元素做法:1.求scc2.统计scc中出度为0的点,列举即可#include#include#include#include#include#include#include#define ll long long#define INF 0x3f3f3f3f#define maxn 20000#d原创 2015-01-01 13:22:02 · 294 阅读 · 0 评论 -
poj2762 Going from u to v or from v to u?
判断一个由向图是否弱连通(任意两点u与v,u->v和v->u至少有一个成立)关键词:弱连通、最长路、拓扑排序做法一:1.建立scc图2.scc图拓扑排序唯一 弱连通做法二:1.建立scc图2.scc图的最长路径,最长路径==scc_cnt 弱连通(存在一条经过所有点的路径)法二还可以求最大弱连通子图#include#include#include#include#in原创 2015-01-01 14:05:07 · 351 阅读 · 0 评论 -
poj3177 Redundant Paths && poj3352 Road Construction
无向连通图最少补充多少条边可以变成边双连通图(不计入重边)不含重边时:与求有向图的前连通分量类似1.求无向图的边双连通分量(edge_bcc)法一:仿照强连通分量(scc)求法。判断条件:pre[u]==low[u]时:u及其子树属于同一边连通分量(正确性未知)法二:判断条件:存在子节点v,pre[u]v为割边(桥),标记桥。再次dfs不经过桥,求得edge_bcc (过繁,舍原创 2015-01-01 22:33:16 · 266 阅读 · 0 评论 -
UVA11324 The Largest Clique
有向图中寻找一个点最多的子图,使得任意两点均可达(至少存在一条路径由一点通向另一点)关键词:建立scc缩点图、有向图任意两点可达的最大子图、dag图最长路径原创 2015-01-01 12:13:14 · 334 阅读 · 0 评论 -
图论的基本知识(二)
关键词:独立集、团、完美图、点覆盖、路径覆盖原创 2015-01-02 14:47:56 · 2313 阅读 · 0 评论 -
hdu4807(最小费用最大流)
题意:给定n点m边有向图,每条边同时可以承载若干人同时经过,每个人的速度均为单位时间通过一条边。K个人从0点开始走向n-1点,问最后一个人走到n-1点的最早时间原创 2015-09-23 21:40:34 · 328 阅读 · 0 评论