MZOJ 1264 Longest

Posted quietus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MZOJ 1264 Longest相关的知识,希望对你有一定的参考价值。

MZOJ 1264 Longest

#include<bits/stdc++.h>
#define maxn 5000
using namespace std;
 
int k=0,head[maxn];
int f[maxn][2];
int ans=0;
 
struct node{
    int v,w,nxt;
}e[maxn<<1];
 
void adde(int x,int y,int z){
    e[k].v=y;
    e[k].w=z;
    e[k].nxt=head[x];
    head[x]=k++;
} 
 
void init(){
    freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
}
 
void readdata(){
    memset(head,-1,sizeof(head));
    int n,u,v,w;
    scanf("%d",&n);
    for(int i=1;i<n;i++){
        scanf("%d%d%d",&u,&v,&w);
        adde(u,v,w);
        adde(v,u,w);
    }
}
 
void dp(int u,int fa){
    f[u][0]=0;
    f[u][1]=0;
    for(int i=head[u];~i;i=e[i].nxt){
        int v=e[i].v,w=e[i].w;
        if (v==fa) continue;
        dp(v,u);
        int dis=f[v][0]+w;
        if(dis>f[u][0]){
            f[u][1]=f[u][0];
            f[u][0]=dis;
        }
        else if(dis>f[u][1]){
            f[u][1]=dis;
        }
        ans=max(ans,f[u][1]+f[u][0]);
    }
}
 
int main(){
    //init();
    readdata();
    dp(1,0);
    printf("%d",ans);
    return 0;
}

树形DP的方法

以上是关于MZOJ 1264 Longest的主要内容,如果未能解决你的问题,请参考以下文章

MZOJ 1063 士兵守卫

MySQL 错误代码:1264。第 1 行的列 'columnname' 的值超出范围

MZOJ 1132 && LuoGu P2014 选课

MZOJ 1127 && LuoGu P2016 战略游戏

严重性代码 描述 项目文件行抑制状态错误 Distill 因未知原因而失败。 1264

MZOJ 1134 && LuoGu P2015 二叉苹果树