摘要:
Proving Equivalences HDU - 2767 UVALive - 4287 Equivalent Sets HDU - 3836 Equivalent Sets HDU - 3836 Equivalent Sets 题意:有向图,问还需要加几条边才变成强连通。 求出各强连通分量,缩 阅读全文
摘要:
迷宫城堡 HDU - 1269 题意:很明显是直接让判断有向图是不是强连通分量。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxv=10010; 4 const int maxe=100010; 5 int n,m; 阅读全文
摘要:
SPF POJ - 1523 题意:无向图,求割顶以及去掉该割顶后有几个连通分量。 去掉一个割顶后,从割顶dfs遍历整张图,每扫一个连通分量计数器加1 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using nam 阅读全文
摘要:
Railway HDU - 3394 题意:一个无向图,1求不在任何一个环里的边数;2求在不止一个环里的边数。 第一问明显就是求桥,第二问,如果求出的某个点双连通分量里面边数多于点数,说明不止一个环,那么所有的边都在不止一个环里。 该求点双连通的,,求成了边双连通。。。要仔细分析问题。 1 #inc 阅读全文
摘要:
Caocao's Bridges HDU - 4738 Caocao's Bridges 题意:一个带权无向图,破坏一条边的代价是权重,如果可以破坏一条边使得存在两点不能互达,输出最小代价。 【找权值最小的桥】 找到桥更新答案即可。 注意如果本身图就不连通,则不需要破坏,代价为0 如果图不存在桥,则 阅读全文
摘要:
Redundant Paths POJ - 3177 Redundant Paths 题意:一个无向图(有重边!!),问至少还要加多少边使得去掉任意一条边后任意两点仍可互达。 和上题poj3352基本相同,不过dfs的时候,不能用v!=f来判断是否能走,而要用当前走的边和上一条边是不是反向边 1 # 阅读全文
摘要:
Road Construction POJ - 3352 题意:一个无向图(无重边),问至少还要加多少边使得去掉任意一条边后任意两点仍可互达。 无向图的边双连通分量(无重边) 先用一次dfs标记出割边,然后dfs标记出各联通分量 再根据割边,缩点重新建图,生成一颗树 则答案就是(叶子树+1)/2. 阅读全文
摘要:
Knights of the Round Table UVALive - 3523 题意:n个人开会,有些人相互憎恨不能挨着坐,且每场会议要保证是奇数个人。问有几个人一场会议也不能参加。 【无向图的点的双连通分量+二分图的判定】 不相互憎恨的人连边建图。 题目本质上要求的是不在任何一个奇圈上的人有几 阅读全文
摘要:
Chocolate HDU - 2282 题意:初始n块巧克力不均匀的放到n个盒子(环形)里,每次可以移动一块巧克力,问最少多少步使得每个盒子里有一块巧克力。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxv=510 阅读全文
摘要:
Special Fish HDU - 3395 题意:n条鱼,被攻击后会产卵,如果i攻击j,那么后代会有g[i]^g[j]的值,求所有后代和的最大值。 KM 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int inf=0x3f3 阅读全文