什么?有人要炸我的桥?!D飞他(心疼周瑜大都督)

这个就是求割边/桥了。

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<cstring>
  4. #include<cstdlib>
  5. #include<algorithm>
  6. #include<cmath>
  7. using namespace std;
  8.  
  9. int n,m;
  10. struct node
  11. {
  12. int x,y,d,t,next;
  13. }a[];int len,last[];
  14. void ins(int x,int y,int d,int t)
  15. {
  16. len++;
  17. a[len].x=x;a[len].y=y;a[len].d=d;a[len].t=t;
  18. a[len].next=last[x];last[x]=len;
  19. }
  20.  
  21. int z,dfn[],low[];
  22. int top,sta[];
  23. int bp,bridge[];
  24. void tarjan(int x,int pre)
  25. {
  26. dfn[x]=low[x]=++z;
  27. sta[++top]=x;
  28. for(int k=last[x];k;k=a[k].next)
  29. {
  30. int y=a[k].y;
  31. if(dfn[y]==)
  32. {
  33. tarjan(y,k);
  34. low[x]=min(low[x],low[y]);
  35. }
  36. else if(a[pre].t!=a[k].t)
  37. low[x]=min(low[x],dfn[y]);
  38. }
  39. if(dfn[x]==low[x])
  40. {
  41. if(pre!=)
  42. bridge[++bp]=pre;
  43. int i;
  44. do{
  45. i=sta[top];top--;
  46. }while(i!=x);
  47. }
  48. }
  49. int main()
  50. {
  51. while(scanf("%d%d",&n,&m)!=EOF)
  52. {
  53. if(n==&&m==)break;
  54.  
  55. int x,y,d;
  56. len=;memset(last,,sizeof(last));
  57. for(int i=;i<=m;i++)
  58. {
  59. scanf("%d%d%d",&x,&y,&d);
  60. ins(x,y,d,i);ins(y,x,d,i);
  61. }
  62.  
  63. z=top=bp=;
  64. memset(dfn,,sizeof(dfn));
  65. memset(low,,sizeof(low));
  66. tarjan(,);
  67.  
  68. bool bk=true;
  69. for(int i=;i<=n;i++)
  70. if(dfn[i]==){bk=false;break;}
  71. if(bk==false){printf("0\n");continue;}
  72.  
  73. int ans=(<<);
  74. for(int i=;i<=bp;i++)
  75. ans=min(ans,a[bridge[i]].d);
  76. printf("%d\n",(ans==(<<))?-:((ans==)?:ans));
  77. }
  78. return ;
  79. }

hdu4738Caocao's Bridges的更多相关文章

  1. hdu 4738 Caocao's Bridges 图--桥的判断模板

    Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. POJ2288 Islands and Bridges

    Description Given a map of islands and bridges that connect these islands, a Hamilton path, as we al ...

  3. HDU 4738 Caocao's Bridges(Tarjan求桥+重边判断)

    Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. HDU 4738 Caocao's Bridges

    Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  5. ZOJ 2588 Burning Bridges(求含重边的无向连通图的割边) - from lanshui_Yang

    Burning Bridges Time Limit: 5 Seconds Memory Limit: 32768 KB Ferry Kingdom is a nice little country ...

  6. zoj 2588 Burning Bridges【双连通分量求桥输出桥的编号】

    Burning Bridges Time Limit: 5 Seconds      Memory Limit: 32768 KB Ferry Kingdom is a nice little cou ...

  7. hdoj 4738 Caocao's Bridges【双连通分量求桥】

    Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  8. bzoj 2095: [Poi2010]Bridges [混合图欧拉回路]

    2095: [Poi2010]Bridges 二分答案,混合图欧拉路判定 一开始想了一个上下界网络流模型,然后发现不用上下界网络流也可以 对于无向边,强制从\(u \rightarrow v\),计算 ...

  9. Luogu4655 [CEOI2017]Building Bridges

    Luogu4655 [CEOI2017]Building Bridges 有 \(n\) 根柱子依次排列,每根柱子都有一个高度.第 \(i\) 根柱子的高度为 \(h_i\) . 现在想要建造若干座桥 ...

随机推荐

  1. Python之IPython开发实践

    Python之IPython开发实践 1. IPython有行号. 2. Tab键自动完成,当前命名空间任何与已输入字符串相匹配的变量就会被找出来. 3. 内省机制,在变量前或者后面加上(?)问号,就 ...

  2. 【PL/SQL】触发器示例:记录加薪

    首先创建一张表,用于保存薪资变化情况: --创建加薪记录表 CREATE TABLE scott.raisedsalarylog ( empno ) NOT NULL PRIMARY KEY, --员 ...

  3. css图片高清适配

    同一张图片,在普通屏显示正常,但高清屏出现模糊.原因是原来一个像素的点分成的四个像素的点进行了显示. 解决方案:在高清屏中把图片变成二倍图,前提是二倍的高清图已经存在. .icon{ backgrou ...

  4. centos添加永久的环境变量

    cd /etc/profile.d/ 创建一个sh文件 vi dotnetpath.sh 内容如下: export PATH=$PATH:/opt/dotnet 保存,重启,这就有了一个永久的环境变量

  5. Java-Class-Miniprogram:com.ylbtech.common.utils.miniprogram.TemplateMessage

    ylbtech-Java-Class-Miniprogram:com.ylbtech.common.utils.miniprogram.TemplateMessage 1.返回顶部 1.1. pack ...

  6. hdu 2084 数塔(简单dp)

    题目 简单dp //简单的dp #include<stdio.h> #include<string.h> #include<algorithm> using nam ...

  7. My97DatePicker 开始日期不能大于 结束日期

    My97DatePicker 日期控制,开始时间不能>结束时间,结束时间不能<开始时间 <li>日期:<input type="text" style ...

  8. String s="a"+"b"+"c"+"d";创建了几个对象?

    对于如下代码: package reviewTest; /** * @ClassName: StringTest * @Description: 测试String的字符串相加优化 * @author ...

  9. odoo 二次开发小记-----不定时更新

    一.odoo中 页面上字段变化引起其他字段范围变化-onchange @api.onchange('company_id') def onchange_parent_id(self): return ...

  10. SpringMVC demo 小例子,实现简单的登录和注册

    1.创建一个动态的web工程 2.导入springMvc所需要的jar包(这里可以去网上找,资源有很多) 前两部就不详细描述了,后面才是正经代码~ 首先有一个web.xml文件,这个属于大配置文件,由 ...