博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu2460 e-DCC染色缩点+暴力LCA
阅读量:5039 次
发布时间:2019-06-12

本文共 2069 字,大约阅读时间需要 6 分钟。

/*给定一个无向图,往里面加边,问加第i条边时图中的桥数首先肯定要求初始状态下的桥,染色缩点每次给定的边为(u,v), 那么u->lca(u,v)->v路上的所有边都不再是桥 求LCA时可以直接暴力,一个一个点往上找即可,网上好多题解都是用并查集做的。。*/#include
using namespace std;#define maxn 200005struct Edge{
int to,nxt,cut;}edge[maxn<<1],edge_c[maxn<<1];int head[maxn],tot,head_c[maxn],tot_c,n,m,q;void addedge(int u,int v){ edge[tot].to=v;edge[tot].nxt=head[u];head[u]=tot++; edge[tot].cut=0;}void add_c(int u,int v){ edge_c[tot_c].to=v; edge_c[tot_c].nxt=head_c[u]; head_c[u]=tot_c++;}int dfn[maxn],low[maxn],ind,c[maxn],dcc;void tarjan(int u,int in_edge){ dfn[u]=low[u]=++ind; for(int i=head[u];i!=-1;i=edge[i].nxt){ int v=edge[i].to; if(!dfn[v]){ tarjan(v,i); low[u]=min(low[u],low[v]); if(dfn[u]
dep[v]){ if(flag[u]) res++,flag[u]=0; u=fa[u]; } while(u!=v){ if(flag[u]) res++,flag[u]=0; if(flag[v]) res++,flag[v]=0; u=fa[u]; v=fa[v]; } return res;}void init(){ memset(head,-1,sizeof head); memset(head_c,-1,sizeof head_c); memset(dep,0,sizeof dep); memset(fa,0,sizeof fa); memset(flag,0,sizeof flag); memset(c,0,sizeof c); memset(dfn,0,sizeof dfn); memset(low,0,sizeof low); tot=tot_c=ind=dcc=0;}int main(){ int tt=0; while(cin>>n>>m,n){ init(); for(int i=1;i<=m;i++){ int u,v; cin>>u>>v; addedge(u,v); addedge(v,u); } tarjan(1,0); dcc=0;//染色 for(int i=1;i<=n;i++) if(!c[i]){ ++dcc; dfs1(i); } int ans=0; for(int i=0;i
>q; for(int i=1;i<=q;i++){ int u,v; cin>>u>>v; ans-=lca(c[u],c[v]); printf("%d\n",ans); } /* for(int i=1;i<=n;i++) cout<
<<" "<
<<" "<
<<" "<
<

 

转载于:https://www.cnblogs.com/zsben991126/p/10458351.html

你可能感兴趣的文章
MySQL字段操作与数据处理
查看>>
SQL左右连接中的on and和on where的区别
查看>>
从Oracle9i RMAN全库备份迁移到 Oracle10g
查看>>
ps基础入门快捷方法总结
查看>>
摸索出来的文字居中 定位后怎么都不居中,,
查看>>
数据库索引
查看>>
VS 自带Git使用教程
查看>>
iOS ReactiveCocoa简单使用笔记
查看>>
[TCP/IP]TCP的三次握手和四次挥手
查看>>
python中交换两个值的方法
查看>>
软件开发中对架构、构架、结构、框架的理解
查看>>
JAVA通信系列一:Java Socket技术总结
查看>>
VS 2010打开设计器出现错误
查看>>
SQLServer 镜像功能完全实现
查看>>
Vue-详解设置路由导航的两种方法
查看>>
一个mysql主从复制的配置案例
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
dvwa网络渗透测试环境的搭建
查看>>
Win8 安装VS2012 和 Sql Server失败问题
查看>>
过点(2,4)作一直线在第一象限与两轴围成三角形,问三角形面积的最小值?...
查看>>