JIBANCANYANG

并非所有流浪者都迷失了自我。

poj 1985 Cow Marathon

@(K ACMer)


题意:
求树的最长路径
分析:
两次dfs求树的直径,无它.


#include <iostream>
#include <cstdio>
#include <cstring>
#include <set>
#include <map>
#include <stack>
#include <vector>
#include <string>
#include <queue>
#include <cstdlib>
#include <cmath>
#include <algorithm>
using namespace std;
typedef pair<int, int> pii;
typedef long long ll;
typedef vector<int> vi;
#define xx first
#define yy second
const int mod = int(1e9) + 7, INF = 0x3fffffff, maxn = 1e5 + 40;
vector<pii> v[maxn];
int n, m, l, s;

void dfs(int x, int y, int pre) {
    if (y > l) s = x, l = y;
    for (int i = 0; i < v[x].size(); i++) {
        if (v[x][i].xx == pre) continue;
        dfs(v[x][i].xx, y + v[x][i].yy, x);
    }
    return;
}


int main(void) {
    while (~scanf("%d%d", &n, &m)) {
        while (m--) {
            int x, y, z;
            scanf("%d%d%d %*c", &x, &y, &z);
            v[x].push_back(make_pair(y, z));
            v[y].push_back(make_pair(x, z));
        }
        l = 0;
        dfs(1, 0, -1);
        l = 0;
        dfs(s, 0, -1);
        printf("%d\n", l);
    }
    return 0;
}
阅读更多
版权声明:本文为博主原创文章,转载请注明作者:jibancanyang。 https://blog.csdn.net/jibancanyang/article/details/49927073
文章标签: poj dfs
个人分类: ACM_图论
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

poj 1985 Cow Marathon

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭