zoukankan      html  css  js  c++  java
  • 【luogu4408】 [NOI2003]逃学的小孩 [动态规划 树的直径]

    P4408 [NOI2003]逃学的小孩

    就是求一个树的直径 然后再在这个路径中找一点

    emmmmmm大概那个意思

    就这样吧emmmm 详见代码

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<queue>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<stack>
     7 #include<algorithm>
     8 using namespace std;
     9 #define ll long long
    10 #define rg register
    11 const int N=200000+5,P=9901,inf=0x3f3f3f3f;
    12 int n,m,s;ll ans=0,maxl,sa,mm=0;
    13 template <class t>void rd(t &x)
    14 {
    15     x=0;int w=0;char ch=0;
    16     while(!isdigit(ch)) w|=ch=='-',ch=getchar();
    17     while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
    18     x=w?-x:x;
    19 }
    20 
    21 int head[N],tot=0;
    22 struct edge{
    23     int v,nxt;ll w;
    24 }e[N<<1];
    25 void add(int u,int v,ll w){
    26     e[++tot].v=v,e[tot].w=w,e[tot].nxt=head[u],head[u]=tot;
    27 }
    28 
    29 ll a[N],b[N];
    30 void dfs(int u,int fa,ll d[])
    31 {
    32 //    if(d[u]>maxl) sa=u,maxl=d[u];
    33     for(rg int i=head[u];i;i=e[i].nxt)
    34     {
    35         int v=e[i].v,w=e[i].w;
    36         if(v==fa) continue;
    37         d[v]=d[u]+w;
    38         if(d[v]>maxl) sa=v,maxl=d[v];
    39         dfs(v,u,d);
    40     }
    41 }
    42 
    43 int main()
    44 {
    45    // freopen("in.txt","r",stdin);
    46     //freopen("nocows.out","w",stdout);
    47     memset(a,0,sizeof(a));
    48     rd(n),rd(m);
    49     int u,v;ll w;
    50     for(rg int i=1;i<=m;++i)
    51     {
    52         rd(u),rd(v),rd(w);
    53         add(u,v,w),add(v,u,w);
    54     }
    55     dfs(1,0,a);maxl=0;
    56     memset(a,0,sizeof(a));
    57     dfs(sa,0,a);ans=maxl,maxl=0;
    58     dfs(sa,0,b);
    59     for(rg int i=1;i<=n;++i)
    60     mm=max(mm,min(a[i],b[i]));
    61     printf("%lld",mm+ans);
    62     return 0;
    63 }
  • 相关阅读:
    time模块
    日期和时间
    异常和函数
    finally子句
    自定义异常
    异常中的else
    全捕捉
    排序算法---希尔排序
    排序算法---直接插入排序
    排序算法---快速排序
  • 原文地址:https://www.cnblogs.com/lxyyyy/p/10845639.html
Copyright © 2011-2022 走看看