【桥】HDU4738[Caocao's Bridges]题
来源:互联网 发布:python注释快捷键 编辑:程序博客网 时间:2024/05/22 03:32
题目概述
给出
ps:这题有毒,当边权为
解题报告
桥连接着两个边双联通分量,删去桥时整个图的连通块数会增加。
求桥有两种方法:1.求出边双,不在边双中的就是桥。2.一条边
只求桥的时候采用后者较为方便。
示例程序
因为只有一个连通块……所以就不用开栈啦QwQ!
#include<cstdio>#include<cctype>#include<cstring>#include<algorithm>using namespace std;const int maxn=1000,maxm=2000000,INF=1e9;int n,m,ans;int E,lnk[maxn+5],nxt[maxm+5],son[maxm+5],w[maxm+5];int ti,dfn[maxn+5],low[maxn+5];#define Eoln(x) ((x)==10||(x)==13||(x)==EOF)inline char readc(){ static char buf[100000],*l=buf,*r=buf; if (l==r) r=(l=buf)+fread(buf,1,100000,stdin); if (l==r) return EOF;return *l++;}inline int readi(int &x){ int tot=0,f=1;char ch=readc(),lst='+'; while (!isdigit(ch)) {if (ch==EOF) return EOF;lst=ch;ch=readc();} if (lst=='-') f=-f; while (isdigit(ch)) tot=(tot<<3)+(tot<<1)+ch-48,ch=readc(); return x=tot*f,Eoln(ch);}#define Add(x,y,z) son[E]=(y),w[E]=(z),nxt[E]=lnk[x],lnk[x]=E++void Tarjan(int x,int pre=-1){ dfn[x]=low[x]=++ti; for (int j=lnk[x];~j;j=nxt[j]) if (j!=pre) { if (!dfn[son[j]]) Tarjan(son[j],j^1),low[x]=min(low[x],low[son[j]]); else low[x]=min(low[x],dfn[son[j]]);if (dfn[x]<low[son[j]]) ans=min(ans,w[j]); }}int main(){ freopen("program.in","r",stdin); freopen("program.out","w",stdout); for (readi(n),readi(m);n||m;readi(n),readi(m)) { E=0;memset(lnk,255,sizeof(lnk)); for (int i=1,x,y,z;i<=m;i++) readi(x),readi(y),readi(z),Add(x,y,z),Add(y,x,z); memset(dfn,0,sizeof(dfn));ans=INF;Tarjan(1); for (int i=1;i<=n;i++) if (!dfn[i]) goto OrzZH; if (ans==INF) goto OrzJZ;if (!ans) ans=1;goto OrzFQY; OrzZH:puts("0");continue; OrzJZ:puts("-1");continue; OrzFQY:printf("%d\n",ans); } return 0;}
阅读全文
0 0
- 【桥】HDU4738[Caocao's Bridges]题
- HDU4738 Caocao's Bridges(桥)
- HDU4738-Caocao's Bridges
- HDU4738 Caocao's Bridges
- HDU4738 Caocao's Bridges (求桥)
- hdu4738 Caocao's Bridges 无向图 tarjan 求桥
- hdu4738 Caocao's Bridges(双连通分量割边/桥)
- 无向图求桥 hdu4738 Caocao's Bridges
- HDU4738——Caocao's Bridges
- HDU4738 Caocao's Bridges【强连通】
- Caocao's Bridges hdu4738 (网络赛 杭州赛区) hdu 4738
- HDU - 4738 Caocao's Bridges(桥)
- hdu4638-tarjan求桥-Caocao's Bridges
- Caocao's Bridges HDOJ4738
- HDU Caocao's Bridges
- Caocao's Bridges HDU
- hdu 4738 Caocao's Bridges
- hdu 4738 Caocao's Bridges
- PYG电商项目开发 -- day01 电商介绍及工程搭建
- 编程的智慧
- Date工具类
- 综合利用一个身份认证漏洞,通吃多款趋势安全软件
- Vim常用命令
- 【桥】HDU4738[Caocao's Bridges]题
- Python os
- linux命令——dmesg
- 【Unity】当人物主角被障碍物遮挡后,将障碍物半透明化
- 假设检验(通俗个人理解)
- 共同学习Java源代码-数据结构-HashMap(九)
- 关于JS调用webservice
- js清除浏览器缓存的几种方法
- Delphi 快捷键