湫湫系列故事——设计风景线

随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形,那就建的越长越好。 
  现在已经勘探确定了n个位置可以用来建设,在它们之间也勘探确定了m条可以设计的路线以及他们的长度。请问是否能够建成环形的风景线?如果不能,风景线最长能够达到多少? 
  其中,可以兴建的路线均是双向的,他们之间的长度均大于0。 

Input  测试数据有多组,每组测试数据的第一行有两个数字n, m,其含义参见题目描述; 
  接下去m行,每行3个数字u v w,分别代表这条线路的起点,终点和长度。

   [Technical Specification] 
  1. n<=100000 
  2. m <= 1000000 
  3. 1<= u, v <= n 
  4. w <= 1000 
Output  对于每组测试数据,如果能够建成环形(并不需要连接上去全部的风景点),那么输出YES,否则输出最长的长度,每组数据输出一行。 
Sample Input

3 3
1 2 1
2 3 1
3 1 1

Sample Output

YES

题解:就是判环,如果无环的话就求出树的直径,如果有环的话就输出YES,就可以了,记录一个最
长路,和次长路,就ok了。
 #include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdlib>
#define N 100007
#define M 1000007
using namespace std; int n,m,ans;
int cnt,head[N],Next[M*],rea[M*],val[M*];
int f[N][],fa[N];
bool vis[N]; void Add(int u,int v,int fee){Next[++cnt]=head[u],head[u]=cnt,rea[cnt]=v,val[cnt]=fee;}
int find(int num)
{
if (fa[num]!=num) return fa[num]=find(fa[num]);
return fa[num];
}
void dfs_solve(int u,int fa)
{
for (int i=head[u];i!=-;i=Next[i])
{
int v=rea[i],fee=val[i];
if (v==fa||vis[v]) continue;
vis[v]=;dfs_solve(v,u);
if (f[v][]+fee>f[u][])
{
f[u][]=f[u][];
f[u][]=f[v][]+fee;
}
else if (f[v][]+fee>f[u][]) f[u][]=f[v][]+fee;
}
ans=max(ans,f[u][]+f[u][]);
}
int main()
{
while (~scanf("%d%d",&n,&m))
{
ans=cnt=;
bool flag=;
memset(vis,,sizeof(vis));
memset(head,-,sizeof(head));
memset(f,,sizeof(f));
for (int i=;i<=n;i++) fa[i]=i;
for (int i=,x,y,z;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
if (flag) continue;
int u=find(x),v=find(y);
if (u==v)
{
flag=;
printf("YES\n");
}
else fa[u]=v;
Add(x,y,z),Add(y,x,z);
}
if (flag) continue;
ans=-;
for (int i=;i<=n;i++)
{
if (!vis[i])
{
vis[i]=;
dfs_solve(i,-);
}
}
printf("%d\n",ans);
}
}

hdu4514(非连通图的环判断与图中最长链)(树的直径)的更多相关文章

  1. HDU4514(非连通图的环判断与图中最长链)

    题目:设计风景线 题意:给定一个无向图,图可能是非连通的,如果图中存在环,就输出YES,否则就输出图中最长链的长度. 分析:首先我们得考虑这是一个无向图,而且有可能是非连通的,那么就不能直接像求树那样 ...

  2. poj2762 判断一个图中任意两点是否存在可达路径 也可看成DAG的最小覆盖点是否为1

      Going from u to v or from v to u? Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 179 ...

  3. HDU4514 湫湫系列故事——设计风景线 ——树的直径/树形dp+判环

    中文题面,给出一个图,问能不能成环,如果可以就输出YES.否则输出该树的直径. 这里的判环我们用路径压缩的并查集就能很快的判断出来,可以在输入的同时进行判断.这题重点就是求树的直径. 树直径的性质可以 ...

  4. POJ 1985.Cow Marathon-树的直径-树的直径模板(BFS、DFS(vector存图)、DFS(前向星存图))

    Cow Marathon Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 7536   Accepted: 3559 Case ...

  5. 【C++】判断一个图是否有环 无向图 有向图(转载)

    没有找到原文出处,请参考一下链接: http://www.cnblogs.com/hiside/archive/2010/12/01/1893878.html http://topic.csdn.ne ...

  6. POJ 1860 Currency Exchange(如何Bellman-Ford算法判断图中是否存在正环)

    题目链接: https://cn.vjudge.net/problem/POJ-1860 Several currency exchange points are working in our cit ...

  7. 判断强联通图中每条边是否只在一个环上(hdu3594)

    hdu3594 Cactus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  8. 图结构练习——判断给定图是否存在合法拓扑序列(dfs算法(第一个代码),邻接矩阵(前两个代码),邻接表(第三个代码))

    sdut 2140 图结构练习——判断给定图是否存在合法拓扑序列 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述  给定一个有向图 ...

  9. javascript实现有向无环图中任意两点最短路径的dijistra算法

    有向无环图 一个无环的有向图称做有向无环图(directed acycline praph).简称DAG 图.DAG 图是一类较有向树更一般的特殊有向图, dijistra算法 摘自 http://w ...

随机推荐

  1. Aappcloud 调到二级页面黑屏

    PartnerHead3.html 后面多了一个点

  2. 关于java的Long 类型到js丢失精度的问题

    写代码碰到一个bug, 现象是 后台Java返回的18位的Long类型的数据,到前台丢失了精度.  查了一下,原因是 java的Long类型是18位, 而 js的Long类型(虽然没有明确定义的Lon ...

  3. EJB 使用多个数据源问题

    编辑 删除 如果在JBoss中同时使用俩个数据源就会发生如下异常: Transaction is not active: tx=TransactionImple < ac, BasicActio ...

  4. CCS3超长文字显示省略号的方法

    需求:当文本长度溢出包含元素时以省略号结尾 CSS3实现方法: #MyDIV{overflow:hidden;text-overflow:ellipsis;} 示例:<!DOCTYPE html ...

  5. Angularjs 实现 $(document).ready()的两种方法

    1.在controller里面利用$on或者$watch bookControllers.controller('bookctrl_test', ['$scope', '$routeParams', ...

  6. String系列之replaceAll方法替换.

    直接使用String类的replaceall方法的第一个参数并不是简单的字符串,而是一个正则表达式.在正则表达式中,英文点号(.)表示任意字符,所以你原先的写法会把所有字符都替换成空白. 转义使用所以 ...

  7. js实现复制input的value到剪切板

    <button class="button-code button-copy">复制链接</button><script> $(".b ...

  8. 自定义分隔符|/i|/x|/xs|需要转译

    小骆驼 第八章 用正则表达式进行匹配 #!/usr/bin/envperl use strict; use warnings; $_ ="#adchbehnyhme3534f\nvdh5ej ...

  9. contextify::ContextifyScript::New(const v8::FunctionCallbackInfo<v8::Value>&):

    问题描述 在执行grunt 命令时候报错 contextify::ContextifyScript::New(const FunctionCallbackInfo<v8::Value> & ...

  10. js div大小随意伸缩

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...