![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
策马奔腾向前冲
这个作者很懒,什么都没留下…
展开
-
1131 Subway Map (30分) dfs
1131 Subway Map (30分)In the big cities, the subway systems always look so complex to the visitors. To give you some sense, the following figure shows the map of Beijing subway. Now you are supposed ...原创 2020-01-22 22:25:03 · 137 阅读 · 0 评论 -
二分图最大匹配(匈牙利算法)
bool dfs(int x){ for(int i=head[x];i;i=nexts[i]){ int y=ver[i]; if(!visited[y]){//如果已经考虑过就不考虑了 visited[y]=1; if(!match[y]||dfs(match[y])){ ...原创 2019-11-02 10:06:07 · 108 阅读 · 1 评论 -
染色法判定二分图
一张图是二分图,当且仅当图中不存在奇数环。(集合内部没有边)染色法判定二分图给定一个n个点m条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。输入格式第一行包含两个整数n和m。接下来m行,每行包含两个整数u和v,表示点u和点v之间存在一条边。输出格式如果给定图是二分图,则输出“Yes”,否则输出“No”。数据范围1≤n,m≤10^5输入样...原创 2019-11-02 01:00:50 · 183 阅读 · 0 评论 -
树的重心(dfs)
树的重心给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。(树的重心可能不唯一)输入格式第一行包含整数n,表示树的结点数。接下来n-1行,每行包含两个整数a和b,表示点a和点b之间存...原创 2019-10-27 16:02:10 · 437 阅读 · 0 评论 -
用邻接表存储图
在一个具有n个点m条边的有向图结构中,我们可以把每条边所属的“类别”定义为该边的起点标号。这样所有边被分成n类,其中第x类就由“从x出发的所有边”构成。通过表头head[x],我们很容易定位到第x类对应的链表,从而访问从点x出发的所有边。head与next数组保存的是“ver数组的下标”,相当于指针,其中0表示指向空。ver数组存储的是每条边的终点,是真实的图数据。//加入有向边(...原创 2019-10-27 08:57:49 · 396 阅读 · 0 评论 -
树的最长路径
方法一:两次bfs先从任意一点P出发,找离它最远的点x,再从点x出发,找离它最远的点y,x到y的距离就是树的直径方法二:树形dp从某个点出发,求其最远距离与次远距离,两者之和最大的为树的直径例题:树的最长路径给定一棵树,树中包含n个结点(编号1~n)和 n−1条无向边,每条边都有一个权值。现在请你找到树中的一条最长路径。换句话说,要找到一条路径,使得路径两端的点的...原创 2019-10-27 10:11:36 · 1394 阅读 · 0 评论 -
Dijkstra计算最短路径条数,寻找边数最少的最短路
进行动态更新最短路径时要进行两种判断,即 < 和 ==原创 2019-01-10 16:35:57 · 2984 阅读 · 1 评论 -
2019 CCPC 秦皇岛F Forest Program(dfs)
题意:给定一张无向简单图,同时规定一条边只属于一个环,并且没有自环和多重边。可以删除任意条边使得这张图变成森林,也就是使得每一个连通块都是树。求一共有多少种方案。分析:要将仙人掌变成树(或者森林),只需要保证对于仙人掌中的每个环,至少有一条边被删去即可。设图中环的大小分别为,不属于任何一个环的边数为b, 则答案为:0表示未被访问过,-1表示还在访问当中且尚未返回,1表示访问完毕。...原创 2019-10-03 12:13:06 · 481 阅读 · 0 评论