判断有没有环路,我个人认为还是并查集效率要高,而且复杂度要比dfs低,性价比很好

这道题的要求,第一判断是否有环,如果没有环,就输出最长的路径

我们可以想到一个无向图如果没有环的话,一定就是两种形态,一种是一棵树,另一种就是森林

那么要求最长路径的话,也就是要求树的半径

大致的思想明白了,就说一下细节吧

并查集的思想就是在图中找一个节点作为根,凡是和这点在一个连通分量里面的点,都插入到这个根上,是的前驱是这个根或者前前驱是这个根,由于并查集的维护,使得这儿数据结构很高效,具体的内容可以找书看。有一个重要的性质就是,如果发现了一条边的两个点的根是一个,说明加上这条边,图中就存在环了,画个图看看,就显而易见了。

详细见代码:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
const int N=100022;
int f[N], num[N];
int find( int x )
{return ( f[x] == x ) ? x : f[x] = find(f[x]);
}
int main()
{int n, m, t1, t2;int u, v, w;int ans;bool fl;while( scanf("%d%d",&n,&m) != EOF ) {for(int i = 1; i <= n; i++ ) f[i] = i;memset( num, 0, sizeof(num) );fl = true;ans = 0;while( m-- ) {scanf("%d%d%d", &u, &v, &w);t1 = find( u ); //找父节点t2 = find( v );if( !fl ) continue;if( t1 == t2 ) fl=false;else {f[t1] = t2;  //将两连通分量连起来,也就是将其中一个父节点变为另一个父节点的父节点num[t2] += num[t1] + w;if ( ans < num[t2] ) ans = num[t2];}}if( fl ) {printf("%d\n", ans);continue;}printf("YES\n");}
}

HDU 4514 湫湫系列故事——设计风景线 (并查集)相关推荐

  1. 路径空间HDOJ 4514 - 湫湫系列故事——设计风景线 并查集+树型DP

    最近研究路径空间,稍微总结一下,以后继续补充: 题意有没说楚清的...两点间最多一条路径.... 先用并查集检查无向图否是有环... 若干个无环的无向图就是一丛林了... 那么目题转化为在一棵树上找最 ...

  2. Hdu 4514 湫湫系列故事——设计风景线

    湫湫系列故事--设计风景线 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...

  3. hdu-----(4514)湫湫系列故事——设计风景线(树形DP+并查集)

    湫湫系列故事--设计风景线 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  4. 刷题总结——湫湫系列故事——设计风景线(hdu4514 并差集判环+树的直径)

    题目: 随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形,那就建的越长越好.    现在已经勘探确 ...

  5. HDU 4539郑厂长系列故事――排兵布阵(状压DP)

    HDU 4539  郑厂长系列故事――排兵布阵 基础的状压DP,首先记录先每一行可取的所哟状态(一行里互不冲突的大概160个状态), 直接套了一个4重循环居然没超时我就呵呵了 1 //#pragma ...

  6. HDU 4513 吉哥系列故事――完美队形II(Manacher)

    题目链接:[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher V - 吉哥系列故事――完美队形II 题意 吉哥又想出了一个新的完美队形游戏! 假设有n个人 ...

  7. HDU 4512 吉哥系列故事――完美队形I(最长公共上升子序列)

    吉哥系列故事--完美队形I Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  8. HDU 4502 吉哥系列故事——临时工计划(动态规划)

    吉哥系列故事--临时工计划                                                                                      T ...

  9. HDU 4505 小Q系列故事——电梯里的爱情

    小Q系列故事--电梯里的爱情                                                                                   Tim ...

最新文章

  1. 一个适合于Python 初学者的入门练手项目
  2. 神经网络预测模型算法_MATLAB Elman神经网络的数据预测—电力负荷预测模型研究...
  3. 聊聊Servlet、Struts1、Struts2以及SpringMvc中的线程安全
  4. 并发insert情况下会发生重复的数据插入问题
  5. A Complete Example
  6. 2018-2019-2 20175224 实验五《网络编程与安全》实验报告
  7. PS批量修改照片大小
  8. js 获取td高度_JS或jQuery获取宽高度
  9. web前端开发规范总结
  10. Feisty中totem-xine播放rm和rmvb没有声音
  11. 阿里开发者招聘节 | 面试题02-04:给定一个二叉搜索树(BST),找到树中第K小的节点...
  12. [NOIP2014]自测
  13. 项目四管理计算机中的资源,第十七章-计算机在项目管理中的应用PPT课件.ppt
  14. 腾讯微博开放平台API SDK vb版源码发布
  15. 浪潮服务器开启虚拟化功能,浪潮服务器-虚拟化解决方案.ppt
  16. 记解决win10报错“任务管理器已被管理员禁用”
  17. C语言卡路里程序,燃烧app的卡路里--app瘦身之路
  18. LiveGBS流媒体平台国标GB/T28181作为下级支持国标级联海康大华宇视华为等第三方国标平台支持对接政务公安内网国标视频平台
  19. 阿里云机器学习PAI-快速上手指南
  20. ceph trash 调研

热门文章

  1. 微信开启指纹支付功能 单账户每日限额5000元
  2. 吃货联盟订餐系统项目实践
  3. 古剑飞仙手游Linux系统服务器架设教程
  4. Android GPU Inspector
  5. 学校开展计算机教学的简报,教学工作简报(2019年第5期)
  6. Pytorch autograd.grad与autograd.backward详解
  7. Echars象形图、3D柱状图基本实现
  8. Android按键音
  9. 【数模】数据统计中的峰度与偏度
  10. PHP将图片和文字合成到一张背景图上