POJ 2117(去掉割点剩下的图中最大连通块)
来源:互联网 发布:大数据入门 知乎 编辑:程序博客网 时间:2024/05/16 07:36
求割点就行了。
这两天被点(边)双(强)联通搞晕了,写不动了,T_T。这题我写的一直超时,这个是别人的代码:
/***************************** author:crazy_石头* date:2014/01/18* algorithm:tarjan* Pro:POJ 2117***************************/#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int N=10010;struct Edge{ int to,nxt;}edge[N<<2];int head[N],vis[N],dfn[N],low[N],cut[N]; //cut[u] 表示u这个点割边数int cnt,k,root;void addedge(int cu,int cv){ edge[cnt].to=cv; edge[cnt].nxt=head[cu]; head[cu]=cnt++;}void Tarjan(int u,int fa){ //割点模板 int son=0; vis[u]=1; dfn[u]=low[u]=++k; for(int i=head[u];i!=-1;i=edge[i].nxt){ int v=edge[i].to; if(vis[v]==1 && v!=fa) low[u]=min(low[u],dfn[v]); if(!vis[v]){ Tarjan(v,u); son++; low[u]=min(low[u],low[v]); if((u==root && son>1) || (u!=root && dfn[u]<=low[v])) cut[u]++; //cut[u] 表示u这个点割边数 } } vis[u]=2;}int main(){ int n,m; while(~scanf("%d%d",&n,&m) && n){ if(m==0){ printf("%d\n",n-1); continue; } memset(head,-1,sizeof(head)); memset(vis,0,sizeof(vis)); memset(cut,0,sizeof(cut)); memset(dfn,0,sizeof(dfn)); cnt=0; int u,v; while(m--){ scanf("%d%d",&u,&v); addedge(u,v); addedge(v,u); } int ans=0; int MAX=0; for(int i=0;i<n;i++){ if(!dfn[i]){ ans++; k=0; root=i; Tarjan(i,-1); } MAX=max(MAX,cut[i]); //取最大的 } printf("%d\n",ans+MAX); } return 0;}
0 0
- POJ 2117(去掉割点剩下的图中最大连通块)
- 图的强连通分量,块,割点,桥
- 图的强连通分量,块,割点,桥
- 连通图的割点、割边 连通图的割点、割边(桥)、块、缩点,有向图的强连通分量
- 割点_去掉割点后的连通分支数(点连通图)
- 连通图的割点、割边(桥)、块、缩点
- 连通图的割点、割边(桥)、块、缩点,有向图的强连通分量
- 连通图的割点、割边(桥)、块、缩点,有向图的强连通分量
- 连通图的割点、割边(桥)、块、缩点,有向图的强连通分量
- 连通图的割点、割边(桥)、块、缩点,有向图的强连通分量
- 求一个连通图的割点(去掉一个点后图不再连通)
- 【连通图|割点】POJ-1144 Network
- poj 2117 去掉割点可以分得的联通图的个数模板
- 求连通图的割点
- 求一个连通图的割点
- 有向连通图的割点
- 图的割边、割点、块、缩点问题
- 无向连通图的割点与割边
- 车载影音导航Mtv下载
- DCT, DST, Walsh, Hadamard , Haar和Slant图像处理程序
- Python学习系列五:模块
- 循环链表
- 如何检查电脑有没被黑客木马入侵
- POJ 2117(去掉割点剩下的图中最大连通块)
- 中国国家图书馆 注册后可以免费使用 维普等多个数据库资源
- JSON KVC 初探
- iOS7 Development step by step – Objective-C & XCode 5
- copy /b
- JUnit4测试出错(一)
- java List 排序 Collections.sort() 对 List 排序
- cocos2dx 官方示例学习(三), Sprite
- 发动机相关知识