图论
阿狸是狐狸啦
这个作者很懒,什么都没留下…
展开
-
强连通分量算法之kosaraju的一些理解
kosaraju计算有向图强连通分量算法的一点小理解这个算法我认为只要难理解为什么进行两次dfs,我们可以想一个图求反向图之后,从一个原点进行dfs然后访问完节点后回溯到最后肯定还是原点,那么反向图dfs过程中可以访问到的点在原图中一定是可以到达原点的(举个栗子 :如果反向图有a->b那么原图肯定有b->a),这样的话就好办了,我们在从最后回溯到的那个点(设为a)为起点对原图求一次dfs,如果原创 2017-09-05 15:10:58 · 285 阅读 · 0 评论 -
codeforces 1082G:G. Petya and Graph(最小割)
题意:给你一个n点m边的图,每个点有个权值,每条边有个权值,让你选择一个边集,然后最大化(边集的权值减去边集中包含的点集的权值)。思路:BZOJ3894:文理分科类似的题目,建立一个汇点T,每个点i向T连一条容量为a[i]的边,每条边拆成一个点,向这条边所连的两个点连一条容量为INF的边,建立源点S,向每个边拆成的点连一条容量为w的边。答案为sum(w)-最小割。#include<...原创 2018-11-30 15:41:09 · 298 阅读 · 0 评论 -
hdu 5952(爆搜+剪枝)
题意:给n点m条边无向图,问你有多少个大小为s的完全子图。思路:因为100个点,所以可以爆搜每个点。但是直接爆搜会产生重复的问题,而且时限不够。观察发现对于4个点完全图我们搜索大小为3的子图会一次搜索,123,124,134,213,214,234......对于123和213这种情况,我们可以把图转换成有向图,编号小的点向编号大的点连边,记录下连通性即可。#include <bi...原创 2018-12-04 18:40:56 · 213 阅读 · 0 评论 -
HDU - 5934 (缩点)
题意:每个炸弹都有一个花费,一个炸弹爆炸,在他的爆炸范围内炸弹都会爆炸,让你花费最少让所有的炸弹爆炸。思路:1000个点可以n方判断两个炸弹之间的关系。如果A爆炸会导致B爆炸,那么A向B连一条边。可以发现一个强连通分量里的炸弹只要一个爆炸就可以了,所以先缩点。因为入度为0的点不能被其他炸弹引爆。所以我们在入度为0的点中选择一个花费最小的即可。#include <iostream&g...原创 2018-09-03 18:29:56 · 184 阅读 · 0 评论 -
hdu 6386 最短路+set
Age of MoyuTime Limit: 5000/2500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1688 Accepted Submission(s): 511 Problem DescriptionMr.Quin love fishes ...原创 2018-08-14 11:34:26 · 394 阅读 · 0 评论 -
美团2018年CodeM大赛-复赛 A B
链接:https://www.nowcoder.com/acm/contest/152/B来源:牛客网题目描述 点点现在有n个软件包。他想设计一个软件包管理器。不可避免地,他要解决软件包之间的依赖问题。 一开始这些软件包之间没有依赖关系。但是每次点点会添加一条依赖关系a,b,表示软件包a依赖b。当这些软件包的依赖关系没有环的时候,那么这个软件包的管理器是好的,否则就是不好的。 ...原创 2018-07-09 21:40:03 · 207 阅读 · 0 评论 -
【HDU 5961 传递】(判断一个图是否满足传递性)
题意:判断两个图是否都满足传递性。题解:对于一个图来说如果a[i][j]==1那么a[i]|a[j]==a[i]。有一条i到j的边,同时j有一条到k的边,如果a[i][k]==1,那么就说明有一条i到k的边,即满足传递性。#include <stdio.h>#include <iostream>#include <string.h>#include <...原创 2018-03-16 22:15:42 · 1249 阅读 · 0 评论 -
匈牙利算法KM算法
KM算法模拟过程:http://blog.csdn.net/dark_scope/article/details/8880547匈牙利算法:https://www.cnblogs.com/wenruo/p/5264235.html理解一天才懂了算法的大概流程转载 2017-12-08 13:32:24 · 675 阅读 · 0 评论 -
图论----无向图割点-桥
无向图中割点:去掉这个点连通分量增加。求法:当一个点为树根时,如果他的儿子数量大于一则这个点为割点,(一棵树的根节点有数量大于一的儿子那么去掉树根,这棵树不连通)当这个点u的dfn[u] 很明显可以看出图二去掉u点连通分量没有增加,为图一去掉u点连通分量增加无向图的桥:当去掉某条边图的连通分量增加则称为此边为桥。求法:当碰到一个点u时dfn[u]原创 2017-09-14 17:22:54 · 717 阅读 · 0 评论 -
hdu4857(拓扑排序,反向建图)
逃生Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8445 Accepted Submission(s): 2423 Problem Description糟糕的事情发生啦,现在大家都忙着逃命。但是逃命的通道很窄,大...原创 2019-02-24 10:14:16 · 220 阅读 · 0 评论