http://poj.org/problem?id=3694

用tarjan算出桥,用lca算出公共祖先 把路上的边更新掉 原来的桥变为不是桥 看一解题报告感觉有一部分是不用加的 不知道是不是数据水 没加交上也A了。。

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define N 1000010
#define M 2000010
struct node
{
int u,v,next;
}edge[M*];
int head[N],t,dfn[N],iscut[N],fa[N],low[N],num,dc;
void init()
{
t = ;
memset(head,-,sizeof(head));
memset(dfn,,sizeof(dfn));
memset(low,,sizeof(low));
fa[] = ;
num=;
dc=;
}
void add(int u,int v)
{
edge[t].u = u;
edge[t].v = v;
edge[t].next = head[u];
head[u] = t++;
edge[t].u = v;
edge[t].v = u;
edge[t].next = head[v];
head[v] = t++;
}
void tarjan(int u,int faa)
{
int i,flag=;
dfn[u] = low[u] = ++dc;
for(i = head[u] ; i != - ; i = edge[i].next)
{
int v = edge[i].v;
if(flag&&faa==v)
{
flag = ;
continue;
}
if(!dfn[v])
{
fa[v] = u;
tarjan(v,u);
low[u] = min(low[v],low[u]);
if(low[v]>dfn[u])
{
num++;
iscut[v] = ;
}
}
else
low[u] = min(dfn[v],low[u]);
}
}
void lca(int u,int v)
{
int t;
if(dfn[u]<dfn[v])
{t = u;u = v;v = t;}
while(dfn[u]>dfn[v])
{
if(iscut[u])
{
iscut[u] = ;
num--;
}
u = fa[u];
}
while(u!=v)
{
if(iscut[v])
{
iscut[v] = ;
num--;
}
/*if(iscut[u])
{
iscut[u] = 0;
num--;
}*/
v = fa[v];u = fa[u];
}
}
int main()
{
int n,m,q,a,b,kk=;
while(cin>>n>>m)
{
kk++;
if(n==&&m==)
break;
init();
while(m--)
{
cin>>a>>b;
add(a,b);
}
tarjan(,);
printf("Case %d:\n",kk);
cin>>q;
while(q--)
{
cin>>a>>b;
lca(a,b);
cout<<num<<endl;
}
puts("");
}
return ;
}

poj3694Network(tarjan+lca)的更多相关文章

  1. Tarjan+LCA【洛谷P2783】 有机化学之神偶尔会做作弊

    [洛谷P2783] 有机化学之神偶尔会做作弊 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 有一天他一边搓炉石一边监考,而你作为一个信息竞赛的大神也来凑热闹. 然而你的化竞基友却向你求助了. ...

  2. poj 3417 Network(tarjan lca)

    poj 3417 Network(tarjan lca) 先给出一棵无根树,然后下面再给出m条边,把这m条边连上,然后每次你能毁掉两条边,规定一条是树边,一条是新边,问有多少种方案能使树断裂. 我们设 ...

  3. 洛谷 P2783 有机化学之神偶尔会做作弊(Tarjan,LCA)

    题目背景 LS中学化学竞赛组教练是一个酷爱炉石的人. 有一天他一边搓炉石一边监考,而你作为一个信息竞赛的大神也来凑热闹. 然而你的化竞基友却向你求助了. “第1354题怎么做”<--手语 他问道 ...

  4. POJ3694-Network(Tarjan缩点+LCA)

    题目链接 题意:给你一个连通图.然后再给你n个询问,每一个询问给一个点u,v表示加上u,v之后又多少个桥. 思路:用Tarjan缩点后,形成一棵树,所以树边都是桥了.然后增加边以后,查询LCA,LCA ...

  5. hdu 5286 How far away ? tarjan/lca

    How far away ? Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pi ...

  6. POJ 3694 Network (tarjan + LCA)

    题目链接:http://poj.org/problem?id=3694 题意是给你一个无向图n个点,m条边,将m条边连接起来之后形成一个图,有Q个询问,问将u和v连接起来后图中还有多少个桥. 首先用t ...

  7. 【Tarjan,LCA】【3-21个人赛】【problemD】

    Problem D Time Limit : 6000/3000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Sub ...

  8. Tarjan LCA

    强连通 迷宫城堡 Proving Equivalences Equivalent Sets Summer Holiday Intelligence System The King's Problem ...

  9. 【洛谷2416】泡芙(Tarjan+LCA)

    题目描述 火星猫经过一番努力终于到达了冥王星.他发现冥王星有 \(N\) 座城市,\(M\) 条无向边.火星猫准备出发去找冥王兔,他听说有若干泡芙掉落在一些边上,他准备采集一些去送给冥王兔.但是火星猫 ...

随机推荐

  1. linux笔记1

    在root下创建用户 1.useradd  abc  //添加一个新用户 2. cat  /etc/passwd   //查看新用户是否存在 3.passwd    abc 输入密码 (123456) ...

  2. php curl抓取远程页面内容的代码

    使用php curl抓取远程页面内容的例子. 代码如下: <?php /** * php curl抓取远程网页内容 * edit by www.jbxue.com */ $curlPost = ...

  3. PHP学习之开发工具

    刚接触PHP,必然需要一套完整的开发工具.每个语言都有各种各样的编辑工具.采用了相对来说比较了解的Eclipse来作为开发工具. 1.要是用Eclipse需要安装JDK或JRE(Eclipse本身就是 ...

  4. css 面试学习

    最经在学习前端的一些东西 转载于http://www.cnblogs.com/lei2007/archive/2013/08/16/3262897.html 雅虎的css前端的35条定律

  5. Android Studio 导入第三方jar包

    1.先将AS切换到Project 2.在app-main-src下建一个libs目录,将jar包拷到里面 3.右击jar,add as Library

  6. 【Passport】微软过时的技术

    虽然已过时,没来得及体验,摘录一段别人的文章,假装对passport的了解 微软在过去的身份验证服务上,一直采用的Passport验证,但已经是N年前推出来的一个软件架构,当然也被软件界很多地方采用到 ...

  7. Linux配置Tomcat(转载)

    转载自:http://www.cnblogs.com/zhoulf/archive/2013/02/04/2891633.html 安装说明 安装环境:CentOS-6.3安装方式:源码安装 软件:a ...

  8. 【BZOJ1251】序列终结者

    Description 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列 要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这 ...

  9. 扩展ExtJs 4.2.1 htmleditor 添加图片功能

    做项目的时候遇到这样一个问题,因为我是用ExtJs做的后台管理框架,所以当我使用ExtJs htmleditor 控件 的时候,发现没有图片上传的功能,于是我打算在网上找找有关的文章,居然真有人写过, ...

  10. 如何让VS根据编译环境选择相应的配置文件

    其实微软还是蛮有创造力的,一个配置文件居然弄了这么多的形式,从原来的ini到现在的xml,总而言之让我们这些在微软殿堂里的程序员翘着屁股追赶. 微软最新的配置文件实际上就是个xml文件,以后缀名.co ...