图论
__Lingyue__
微软亚洲研究院 实习生
展开
-
奖学金 灵活的拓扑排序
1. 对先遍历后处理要理解的深刻。2. 从下往上遍历通过传参数改变父节点的值。3. 利用vector存图可以大大减少空间和时间的开销。原创 2016-08-04 22:36:08 · 1410 阅读 · 0 评论 -
uva10304 Ordering-Tasks 拓扑排序
拓扑排序的邻接表和矩阵实现利用二维数组稀疏表很浪费空间,利用邻接表更好。利用邻接表要堤防重复值。例如:1,3 1,3 二维数组把一个结点赋1,但是邻接表在一个节点下会出现两个值。设置visited数组之后一般不用担心邻接表重复值影响结果。原创 2016-08-05 00:50:58 · 490 阅读 · 0 评论 -
uva10129 欧拉回路 判断出入度数 连通性 遍历压栈
欧拉回路:求度数>>连通性>>遍历找回路原创 2016-08-05 00:57:08 · 645 阅读 · 0 评论 -
poj3159 candies dijkstra
1. dijkstra 算法,利用优先队列优化,找到最近的点。2. 添加vis数组剪枝。3. 优先队列重载运算符时,右边的值优先级大放在前,所以 a > b表示从小到大排列。原创 2016-08-06 11:54:13 · 475 阅读 · 0 评论 -
dijkstra 模板
dijkstra解决无负权边的图的最短路,有向无向都可以。原创 2016-10-21 11:56:56 · 406 阅读 · 0 评论 -
floyd 最短路 模板
floyd 算法主要解决:有负权边的有向图或者无向图的两两节点之间的最短路。如果存在有G\[i\]\[i\]是负数,那么说明有负权环。原创 2016-10-22 14:01:33 · 435 阅读 · 0 评论 -
poj 1273 网络流板子题
Problem: 给了一个源点,一个汇点,一些节点之间的容量,求最大网络流。原创 2017-03-09 17:44:59 · 611 阅读 · 0 评论 -
HDU1233 还是畅通工程 【最小生成树】
Problem: 给定每两节点间的距离,求出这幅图的最小生成树的权值。 Solution: 利用kruskal或者prim算法求最小生成树,密集图prim算法的效率更好一些原创 2017-03-06 21:03:33 · 507 阅读 · 0 评论 -
poj 2112 Optimal Milking 【网络流】
Problem: 有k个机器和c头奶牛,一个机器最多可以供应m个奶牛使用,给定奶牛和机器之间的路径(图),问走的最远的奶牛走的路最短有多远?原创 2017-03-20 21:12:34 · 397 阅读 · 0 评论 -
hdu 4322 Candy 【最大费用最大流】
Problem: 有n个糖果和m个孩子,给出每个孩子是否喜欢某个糖果,如果把孩子孩子喜欢的糖果给了孩子,那个孩子会增加k个glad值,否则只增加一个,问能否有一个方案使得所有的孩子的glad值都不小于b[i]?原创 2017-03-29 14:08:05 · 423 阅读 · 0 评论 -
最小费用最大流 模板
1. 因为含有负权边,所以使用spfa进行增广。2. 指定流量的最小费用流可以初始化一个f,然后每次一直循环到f<= 0为止。3. 函数返回的是最大流,当然经过少量修改可以返回最小费用,利用最小流量乘以相应的费用即可。4. prevv记录父节点,preve记录当前节点对应父节点的第几条边。原创 2017-03-29 14:25:45 · 413 阅读 · 0 评论 -
ccf(csp) 认证 201403-4 无线网络 【bfs】
Problem: 有n个坐标已有路由器,有m个坐标可以放置路由器,但是最多放置k个,两路由器间距离不大于r即可建立链接,问最少使用多少个路由器?原创 2017-03-14 23:43:03 · 1663 阅读 · 1 评论 -
dinic 网络流模板
1. dinic的复杂度为n^2*m,n是点,m是边。2. 要注意指定起点和终点,先分层,然后进行dfs。原创 2017-03-09 17:40:02 · 656 阅读 · 0 评论 -
ccf 201512-4 送货 无向图欧拉回路
Problem: n个节点m条路,看成一个无向图,判断能否每条路直走一次。原创 2017-06-14 15:43:39 · 1248 阅读 · 1 评论 -
hdu 1269 迷宫城堡 强连通分量
Problem: 给一个有向图,问这个图是否两两都可互相达。原创 2016-10-26 11:14:53 · 277 阅读 · 0 评论 -
双连通分量 模板
1. bcc的全称是biconnected component,双连通分量,点双连通关注的是不包含割点的连通分量,边双连通关注的是不包含桥的连通分量。2. 点双连通例题:UVALive 5135。边双连通例题:poj 3352。3. 边双连通分量巧妙利用isB数组,空间换时间,也大大降低了模板的复杂度,解决了标记边难的问题。原创 2016-11-05 23:58:40 · 800 阅读 · 0 评论 -
uva11853 图 范围节点的处理和遍历
如果这个节点有一定范围半径:1. 那么通过圆心距判断是否相交。2. 通过判断圆和边界来判断是否出界。3. 相交的圆进行遍历。原创 2016-08-05 00:35:32 · 972 阅读 · 0 评论 -
uva208 剪枝 连通块儿的判定
1. 图不一定是连通的,某些题型下要提前进行判断,进行剪枝。2. 递归遍历标记同一个连通块儿。3. 从结果遍历判断和结果在同一个连通块儿的子集。4. 子集遍历:核心在于递归前的cursor的++,和递归后cursor的--。原创 2016-08-06 11:54:36 · 559 阅读 · 0 评论 -
uva437 DAG最长路 节点映射间接表达
1. DAG最长路的模板记忆化搜索。2. 当图节点是结构体时,利用结构体数组的下标映射到图中。原创 2016-08-06 11:54:46 · 518 阅读 · 0 评论 -
uva572 油田 连通块遍历
代码的简洁性需要注意小技巧:1. 方向数组。2. 外面包一层空气防止判断边界。3. 更改原来的数组的状态而不需要重新建立vis数组(这样会破坏原始数据,是一个不好的习惯,但是这样很灵活。)原创 2016-08-06 11:55:07 · 828 阅读 · 0 评论 -
uva1572 Self-Assembly 拓扑排序 提炼有向图模型
1. 拓扑排序2. 利用2n,2n+1存储a+,a-这类型增加的状态。3. 有向图模型的提炼。4. 2n+1^1 = 2n的转换原创 2016-08-06 11:57:41 · 459 阅读 · 0 评论 -
poj 3259 Wormholes 负权边最短路
Problem: 判断是否存在负权环原创 2016-10-21 15:35:03 · 431 阅读 · 0 评论 -
spfa 有无负权环 负权边最短路 模板
spfa 是利用队列优化的快速bellman-ford的算法,可以判断是否有负权环,如果没有的话可以求出来最短路。原创 2016-10-21 15:37:33 · 941 阅读 · 0 评论 -
poj 3660 Cow Contest 弗洛伊德的应用
Problem: 给了很多对儿大小关系,问有多少个数可以确定排名?原创 2016-10-22 13:58:35 · 313 阅读 · 0 评论 -
poj 1258 Agri-Net 最小生成树
Problem: 给了一个矩阵,求这个矩阵的最小生成树。原创 2016-10-24 00:44:29 · 356 阅读 · 0 评论 -
有向图强连通分量 模板
强连通分量是指两两互相可达的一个分量。利用dfn而不是low的原因是还在栈中的元素low并没有计算完,而且没有计算low的必要,在割点后的已经被计算,在割点前的low值也不由这个节点来决定。原创 2016-10-26 11:20:16 · 543 阅读 · 0 评论 -
UVALive 5135 Mining Your Own Business(点双连通分量)
Problem: 有一个矿井(图),为了矿工的安全,无论哪一个点出现事故,所有地方的矿工都能安全逃出,问最少建多少个安全通道,有多少种方案?原创 2016-11-06 00:34:14 · 419 阅读 · 0 评论 -
poj 1144 Network 无向连通图求割点
Problem:给定一个连通图,求割点的数目。原创 2016-10-27 20:50:22 · 536 阅读 · 0 评论 -
无向连通图 割点 桥 模板
1. 先通过tarjan标记一遍dfn和low数组,再计数。2. 可以任选一个节点为根,如果是一个环,那么dfs可以直接判断出来是一个根节点。如果根节点有大于一个的子树,说明这个节点是割点。3. 割点要 >=, 桥>。4. 要注意题目有没有重边,如果有,计算桥的时候要特殊标记。5. 割点的数目不等于可以分割部分的数目,后者要用强连通分量来计算。6. 求桥时无需判断是否是根节点。原创 2016-10-27 12:13:25 · 431 阅读 · 0 评论 -
poj 3352 Road Construction(边双连通分量)
Problem: 给一个图,问最少连多少条边可以使原图成为一个双连通分量。原创 2016-11-06 23:45:24 · 365 阅读 · 0 评论 -
最小生成树 模板
密集图用prim算法,O(v^2),稀疏图用Kruskal算法,复杂度O(ElogE)。原创 2016-10-24 00:47:57 · 483 阅读 · 0 评论