• XidianOJ 1090 爬树的V8


    题目描述

    V8超级喜欢锻炼身体,尤其喜欢爬树,为了抓到更多的虫子,他希望自己从某个叶子节点到根节点的路径最长,现在给你一棵树,输出V8需要的路径长度。

    输入

    多组数据
    第一行一个T表示数据组数
    对于之后的每组数据
    第一行一个n,表示边数。
    后面n行,每一行三个数u,v,w,表示有v是u的儿子,并且之间有一条权为w的边。
    1为根节点。

    所有数据小于10000.

    输出

    从根节点到某个叶子的最长路径。

    --正文
    难点在咋储存这个树。。
    试过c的结构体,被free搞的心烦意乱
    只好用vector水一下
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cstdlib>
    #include <vector>
    using namespace std;
    typedef long long LL;
    
    struct EdgeNode {
        int next;
        int weight;
    };
    typedef struct EdgeNode Edge;
    vector<Edge> Tree[10001];
    
    int dfs(int node){
        int i,sum = 0;
        for (i=0;i<Tree[node].size();i++){
            sum = max(sum,dfs(Tree[node][i].next)+Tree[node][i].weight);
        }
        return sum;
    }
    
    int main(){
        int time,T,i,j;
        scanf("%d",&T);
        for (time=1;time<=T;time++){
            int n;
            scanf("%d",&n);
            for (i=1;i<=n;i++) Tree[i].clear();
            for (i=1;i<=n;i++){
                int u,v,w;
                scanf("%d %d %d",&u,&v,&w);
                Edge l;
                l.next = v; l.weight = w;
                Tree[u].push_back(l);
            }
            int root;
            printf("%d
    ",dfs(1));
        }
        return 0;
        
    }
  • 相关阅读:
    MO 中的imagelayer
    GDAL之OGR入门(转载)
    OGR体系结构
    C++与C# 以及指针
    如何用C#编程实现动态生成Word文档并填充数据?
    C++的类与C#的类[zt]
    arcmap vba 实现“卫星立体测图”高度字段值的计算,今天的一点小成就
    lib 和 dll from baidu
    ping and netstat
    Visual Basic6.0 中的类模块和标准模块
  • 原文地址:https://www.cnblogs.com/ToTOrz/p/6115846.html
Copyright © 2020-2023  润新知