随笔分类 -  图论

摘要:题意:有n台电脑,现在有些电脑可以传数据到另外的电脑上,即有k条边。问题1:现在问至少需要给多少台电脑传送数据才能到达全部电脑。问题2:问至少添加多少条边才能使得往任意一台电脑传送数据便可以到达所有电脑。思路:问题1可以转化为求入度为0的缩点个数,问题2可以转换为求m... 阅读全文
posted @ 2018-08-30 10:25 MCQ 阅读(106) 评论(0) 推荐(0)
摘要:具体学习参考https://blog.csdn.net/qq_34374664/article/details/77488976/** Tarjan 算法* 复杂度 O(N+M)*/#includeusing namespace std;const int MAXN ... 阅读全文
posted @ 2018-08-29 23:57 MCQ 阅读(146) 评论(0) 推荐(0)
摘要:题意:给定n个点m条边的无向图(开始每个点都是白色)下面m行给出边和边权,边权表示这条边所连接的2个点中被染成黑色的点数。0表示染,1表示其中一个点染,2表示都染。问:最少染多少个点可以满足上述的边权。若不存在输出impossible思路:首先处理所有边权为0和2的情... 阅读全文
posted @ 2018-08-29 21:04 MCQ 阅读(233) 评论(0) 推荐(0)
摘要:判定一个图是否为二分图 从其中一个定点开始,将跟它邻接的点染成与其不同的颜色,最后如果邻接的点有相同颜色,则说明不是二分图,每次用bfs遍历即可。 #include #include #include using namespace std; const... 阅读全文
posted @ 2018-08-29 09:25 MCQ 阅读(223) 评论(0) 推荐(0)
摘要:#include #include // 最大顶点数const int V = 100000;// 最大边数const int E = 100000;// 边结构体的定义struct Edge { int to; // 表示这条边的另外一个顶点 ... 阅读全文
posted @ 2018-08-26 23:21 MCQ 阅读(114) 评论(0) 推荐(0)
摘要:题意:n个点 m条无向边的图,找一个欧拉通路/回路使得这个路径所有结点的异或值最大。思路:首先了解欧拉路欧拉路 。先判断是否有欧拉路径或欧拉回路(入度为奇数的点是2或0),然后画画图可以看出每个点当(度数+1)/2是奇数,则有贡献,否则贡献为0(自己异或自己等于... 阅读全文
posted @ 2018-08-14 22:04 MCQ 阅读(153) 评论(0) 推荐(0)
摘要:Problem Description 度度熊最近似乎在研究图论。给定一个有 N 个点 (vertex) 以及 M 条边 (edge) 的无向简单图 (undirected simple graph),此图中保证没有任何圈 (cycle) 存在。现在你可以对此图依序进... 阅读全文
posted @ 2018-08-12 22:55 MCQ 阅读(197) 评论(0) 推荐(0)
摘要:#include#includeint map[27][27],indegree[27],q[27];int TopoSort(int n) //拓扑排序{ int c=0,temp[27],loc,m,flag=1,i,j; ////flag=1:有序 f... 阅读全文
posted @ 2018-08-07 22:18 MCQ 阅读(143) 评论(0) 推荐(0)
摘要:题意:第一行给定变量,第二行给定给定约束,每个约束包含两个变量, x y表示x>ch) ……#includeusing namespace std;#define inf 0x3f3f3f3f#define ll long longconst int maxn=200... 阅读全文
posted @ 2018-08-06 21:45 MCQ 阅读(139) 评论(0) 推荐(0)
摘要:算法思想:在一个有向图中,我们一定可以找到这样一个合理顺序,使得我们只需要按照这个顺序进行dfs遍历,那么每一次的dfs就可以使我们得到一个scc。合理顺序参考https://www.cnblogs.com/nullzx/p/6437926.html经过简单的分析我们... 阅读全文
posted @ 2018-08-05 13:31 MCQ 阅读(245) 评论(0) 推荐(0)
摘要:#include #include #include int mp[100][100];int visit[100];void dfs(int x,int n){ int i; visit[x]=1; for(i=1;i<=n;i++) { ... 阅读全文
posted @ 2018-08-05 13:08 MCQ 阅读(1809) 评论(0) 推荐(0)
摘要:算法:dfn【u】为dfs遍历中u是第几个被访问到的。low【u】为该dfs u可以到达的访问时间最早的祖先的深度。首先,对图进行一次dfs遍历,可以得到每个点的dfn和low。考察所有点u和它在dfs树中的儿子节点s1,s2……sk。(1)如果对于某个si,满足lo... 阅读全文
posted @ 2018-08-04 21:36 MCQ 阅读(175) 评论(0) 推荐(0)