POJ PKU 3694 割边 lca
(2010-09-28 21:31:38)
标签:
pojpku3694割边lcait |
分类: 图论 |
题目描述:给你一个无向连通图,然后陆续加一些边。
每加一条边,让你输出当前图的割边有多少条。
解题报告:
开始时先统计所有割边的个数(tarjan),然后每加一条边,只会减少割边的个数。
随机取一个根,建立dfs树,确定每一个点的father。
这样,每当连接点a和点b这条边,会就形成一个环,这个环内的边都不是割边。
所以只要找到a,b的lca,把这个路径上的桥标记掉就好了。
代码如下:
#include<iostream>
#include<vector>
using namespace std;
#define N 100001
vector<int> v[N];
int n, m, q, a, b, dfn[N], low[N], num, index, fa[N], level[N];
bool isbridge[N];
void tarjan(int id, int from, int deep)
{
}
void lca(int u, int v)
{
}
int main()
{
}