<题目链接> 题目大意:给定一个$n$个节点$m$条边的无向图,问你对任意两点,最多有多少条特殊边,特殊边指删除这条边后,这两个点不能够到达. 解题分析: 特殊变其实就是指割边,题意就是问你任意两点的路径之间,割边的最大数量.比较裸的题目,由边双连通和树的直径拼凑而成. 用边双连通缩完点之后,树形DP算出最长链即可. #include <bits/stdc++.h> using namespace std; template<typename T> inline voi…
题面在这里! 依然一眼题,求出割边之后把图缩成一棵树,然后直接求最长链就行了2333 #include<bits/stdc++.h> #define ll long long using namespace std; #define pb push_back const int N=300005; vector<int> g[N]; int dfn[N],low[N],num=1,hd[N],n,m,ans=0,v[N]; int to[N*2],ne[N*2],cnt,col[N…
E - We Need More Bosses CodeForces - 1000E Your friend is developing a computer game. He has already decided how the game world should look like - it should consist of nn locations connected by mm two-waypassages. The passages are designed in such a…
http://codeforces.com/gym/100676/attachments 题目大意: 有n个城市,有m条路,每条路都有边长,如果某几个城市的路能组成一个环,那么在环中的这些城市就有传送门,能够瞬间抵达对方的城市(即距离为0),否则,就要走这条路,并且经过的路程为这条路的长度. 问,找一个城市作为这些城市的首都 要求:除了首都城市外,其他城市到首都的最大距离最短. 思路: 边双连通缩点以后就是一棵树,找树上的直径,首都一定是直径上的点.(orz,自己明明注意到了一定是直径上面的点,…
题目链接: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 边双连通问…
Warm up Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 3160    Accepted Submission(s): 718 Problem Description N planets are connected by M bidirectional channels that allow instant transport…
[题意]给定一个无向图,问在允许加一条边的情况下,最少的桥的个数 [思路]对图做一遍Tarjan找出桥,把双连通分量缩成一个点,这样原图就成了一棵树,树的每条边都是桥.然后在树中求最长链,这样在两端点间连一条边就能形成环从而减少桥数. 不能更逗比..多校第一场刚做出来的找最长链第二场就做错了= =,还一直以为是模板的问题...... #include #include #include #include #include #include #define MID(x,y) ((x+y)/2) #…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4612 简单图论题,先求图的边双连通分量,注意,此题有重边(admin还逗比的说没有重边),在用targan算法求的时候,处理反向边需要标记边,然后缩点,在树上求最长链.. 此题在比赛的时候,我的模板数组开小,WA一下午,sd.... //STATUS:C++_AC_734MS_37312KB #include <functional> #include <algorithm> #inc…
给一个无向图,要求变成强连通的有向图,需要保留哪些边. 边的双连通,对于桥保留两条边,其他的只保留一条边.求双连通的过程中记录保留边. /********************************************* Problem: 1515 User: G_lory Memory: 232K Time: 32MS Language: C++ Result: Accepted **********************************************/ #incl…
有n个牧场,Bessie 要从一个牧场到另一个牧场,要求至少要有2条独立的路可以走.现已有m条路,求至少要新建多少条路,使得任何两个牧场之间至少有两条独立的路.两条独立的路是指:没有公共边的路,但可以经过同一个中间顶点. 一个连通无向图最少加几条边变成双连通图(缩点后叶子节点(即度数为1)的个数 + 1) / 2 #include <iostream> #include <cstdio> #include <cstring> using namespace std; /…