• 牛客网小白月赛6C(DFS,思维)


    #include<bits/stdc++.h>
    using namespace std;
    vector<int>tree[1000010];
    int sum=0;
    int dfs(int x, int y)
    {
        int first = 0, second = 0;
        for (int i = 0; i < tree[y].size(); ++i)
        {
            if (tree[y][i] == x)
                continue;
            int temp = dfs(y, tree[y][i]);
            if (temp>first)
            {
                second = first;
                first = temp;
            }
            else if (temp > second)
            {
                second = temp;
            }
        }
        sum=max(sum,first+second);
        return first+1;
    }
    int main()
    {
        int n;
        scanf("%d",&n);
        int a,b;
        for(int i=1;i<=n;i++)
        {
            scanf("%d%d",&a,&b);
            tree[a].push_back(b);
            tree[b].push_back(a);
        }
        dfs(0,1);
        printf("%d",sum+1);
        return 0;
    }

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    Json -- 语法和示例,javascript 解析Json
    平衡二叉树的实现原理
    递归:汉诺塔
    递归:这帮坑爹的小兔崽子
    函数:递归是神马
    函数:lambda表达式
    函数:内嵌函数和闭包
    函数:我的地盘听我的
    函数:灵活即强大
    函数:Python的乐高积木
  • 原文地址:https://www.cnblogs.com/ldudxy/p/9503927.html
Copyright © 2020-2023  润新知