zoukankan      html  css  js  c++  java
  • POJ P1985 Cow Marathon 题解

    这道题是我们考试的第一题,非常水,就是一个树的直径的板子。详见上一篇博客。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #define maxn 40000
     6 using namespace std;
     7 int n,m,cnt=0,ans,f_num;
     8 int head[2*maxn+10],d[maxn+10];
     9 struct node
    10 {
    11     int u,v,w,nex;
    12 }edge[2*maxn+10];
    13 inline void add(int x,int y,int z)
    14 {
    15     cnt++;
    16     edge[cnt].u=x;
    17     edge[cnt].v=y;
    18     edge[cnt].w=z;
    19     edge[cnt].nex=head[x];
    20     head[x]=cnt;
    21 }
    22 inline void dfs(int x,int fa)
    23 {
    24     if(ans<d[x])
    25     {
    26         ans=d[x];
    27         f_num=x;
    28     }
    29     for(int i=head[x];i!=-1;i=edge[i].nex)
    30     {
    31         int to=edge[i].v;
    32         if(to==fa)continue;
    33         d[to]=d[x]+edge[i].w;
    34         dfs(to,x);
    35     }
    36 }
    37 int main()
    38 {
    39     freopen("marathon.in","r",stdin);
    40     freopen("marathon.out","w",stdout);
    41     memset(head,-1,sizeof(head));
    42     scanf("%d%d",&n,&m);
    43     for(int i=1;i<=m;i++)
    44     {
    45         int x,y,z;
    46         char xb;
    47         scanf("%d%d%d",&x,&y,&z);
    48         cin>>xb;
    49         add(x,y,z);
    50         add(y,x,z);
    51     }
    52     ans=0;
    53     d[1]=0;
    54     dfs(1,0);
    55     ans=0;
    56     d[f_num]=0;
    57     dfs(f_num,0);
    58     printf("%d",ans);
    59     return 0;
    60 }
    请各位大佬斧正(反正我不认识斧正是什么意思)
  • 相关阅读:
    Memcached: 目录
    Memcached: temple
    Redis: Redis支持五种数据类型
    互联网市场
    java实现猜生日
    java实现汉诺塔计数
    java实现汉诺塔计数
    java实现汉诺塔计数
    java实现汉诺塔计数
    java实现汉诺塔计数
  • 原文地址:https://www.cnblogs.com/handsome-zyc/p/11237548.html
Copyright © 2011-2022 走看看