题意:将一个无向图中的双向边改成单向边使图强连通,问最多能改多少条边,输出改造后的图. 分析: 1.双连通做法: 双连通图转强连通图的算法:对双连通图进行dfs,在搜索的过程中就能按照搜索的方向给所有边定向,其中桥不能改造,只能保留双向边. 代码: #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #includ…
给一个无向图,要求变成强连通的有向图,需要保留哪些边. 边的双连通,对于桥保留两条边,其他的只保留一条边.求双连通的过程中记录保留边. /********************************************* Problem: 1515 User: G_lory Memory: 232K Time: 32MS Language: C++ Result: Accepted **********************************************/ #incl…
Andrewid the Android is a galaxy-known detective. Now he is preparing a defense against a possible attack by hackers on a major computer network. In this network are n vertices, some pairs of vertices are connected by m undirected channels. It is pla…
UVA 610 - Street Directions option=com_onlinejudge&Itemid=8&page=show_problem&category=546&problem=551&mosmsg=Submission+received+with+ID+14124664" target="_blank" style="">题目链接 题意:给定一个无向图,要求把尽可能多的边定向,使得形成一个…
Street Directions Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVALive. Original ID: 541264-bit integer IO format: %lld      Java class name: Main   According to the Automobile Collision Monitor (ACM), most fatal traffic a…
题目链接:http://poj.org/problem?id=3694 题意:n个点,m条边,给你一个连通图,然后有Q次操作,每次加入一条边(A,B),加入边后,问当前还有多少桥,输出桥的个数. 解题思路:先将原连通图边双连通缩点成一颗树,Q次操作过程中对树进行LCA操作.具体看代码: 看网上也有不缩点的方法. 思路参考于:http://www.cnblogs.com/kuangbin/p/3184884.html #include "stdio.h" //poj 3177 边双连通问…
有n个牧场,Bessie 要从一个牧场到另一个牧场,要求至少要有2条独立的路可以走.现已有m条路,求至少要新建多少条路,使得任何两个牧场之间至少有两条独立的路.两条独立的路是指:没有公共边的路,但可以经过同一个中间顶点. 一个连通无向图最少加几条边变成双连通图(缩点后叶子节点(即度数为1)的个数 + 1) / 2 #include <iostream> #include <cstdio> #include <cstring> using namespace std; /…
http://www.cnblogs.com/wenruo/p/4989425.html 强连通 强连通是指一个有向图中任意两点v1.v2间存在v1到v2的路径及v2到v1的路径. dfs遍历一个图,会生成一颗树.每个节点按最先遍历的时间给定一个编号,用一个数组dfn表示,又叫时间戳. 然后有几个概念. 画图举例: 假设一个边是u-->v 树边:dfs遍历后生成树的边叫做树边.dfn[u] = -1 如图中<1,2> <2,3> <3,4> <2,5>…
Road Construction Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10141   Accepted: 5031 Description It's almost summer time, and that means that it's almost summer construction time! This year, the good people who are in charge of the r…
/** 题目大意: 给你一个无向连通图,问加上一条边后得到的图的最少的割边数; 算法思想: 图的边双连通Tarjan算法+树形DP; 即通过Tarjan算法对边双连通缩图,构成一棵树,然后用树形DP求最长链,连接首尾即可;剩下的连通块即为所求答案; 算法思路: 对图深度优先搜索,定义DFN(u)为u在搜索树中被遍历到的次序号; 定义Low(u)为u或u的子树中能通过非父子边追溯到的最早的节点,即DFN序号最小的节点; 则有: Low(u)=Min { DFN(u), Low(v),(u,v)为树…