题解 | #小G有一个大树#

小G有一个大树

https://ac.nowcoder.com/acm/problem/15033

思路

题目都没看懂就莫名其妙A了,“如果结点数相同输出编号小的”,是指平衡点的编号吗?下面题解是按照这样理解的。
我先讲一下做题思路吧,数据规模很小,1e3,所以可以把每一个节点当作根去找树的最大深度,最大深度最小的第一个节点可以作为平衡点。
找到平衡点之后再来一个push_up对他每一个子节点计算树的节点数,就能求出答案了。

代码

#include<bits/stdc++.h>
#define int ll
#define inf 0x3f3f3f3f3f3f
typedef long long ll;
using namespace std;
const int maxn=1e5+5;
int n,a[maxn],u,v,tmp,ans=0,id;
int sz[maxn],dep[maxn],tmp_dep=0,mx_dep=1e6+7;
vector<int>G[maxn];

int push_up(int node,int pre){
    sz[node]=1;
    for(int i=0;i<G[node].size();i++){
        if(G[node][i]==pre) continue;
        sz[node]+=push_up(G[node][i],node);
    }
    return sz[node];
} 

void dfs(int node,int pre){
//    cout<<node<<" "<<pre<<endl;
    for(int i=0;i<G[node].size();i++){
        int to=G[node][i];
        if(to==pre) continue;
        dep[to]=dep[node]+1;
        dfs(to,node);
    }
    tmp_dep=max(dep[node],tmp_dep);
}

signed main(){
    scanf("%lld",&n);
    for(int i=1;i<n;i++){
        scanf("%lld%lld",&u,&v);
        G[u].push_back(v);
        G[v].push_back(u);
    }
    for(int i=1;i<=n;i++){
        memset(dep,0,sizeof(dep));
        tmp_dep=0;
        dfs(i,0);
        if(tmp_dep<mx_dep){
            mx_dep=tmp_dep;
            id=i;
        }
    }
//    cout<<mx_dep<<" "<<id<<endl;
    for(int i=0;i<=G[id].size();i++){
        tmp=push_up(G[id][i],id);
        if(tmp>ans) ans=tmp;
    }
    cout<<id<<" "<<ans;
    return 0;
} 
全部评论

相关推荐

MomonKa:我拿Java简历投了pdd前端也给我简历过筛了
点赞 评论 收藏
分享
会员标识
02-20 16:28
已编辑
牛客运营
从03年的“北大毕业生卖猪肉”到前段时间上热搜的“北大博士入职城管”,这些年“下沉式就业”现象频繁牵动着大家的视野和目光吧,很吸睛?我觉得并不是,如果你说985大学生XXX,那可能成不了焦点,如果说是北大清华毕业生去当城管,卖猪肉,大家都会讨论一番,无论是谁都知道北大清华的过人之处。但是呢近些年的确有很多985、211名校毕业生选择到基层就业或回老家创业,会不会觉得大财小用?老家的哥哥,因为当时学的专业不是很好,但好在学校不错,一路本硕连读,毕业之后在上海打拼了2年,也攒了一些小钱,随后回村选择科学养鸡,买了很大一块地开始科学方法的养鸡、卖鸡蛋,村里的老人都会议论纷纷,白瞎了家里供你读书,又回...
下午吃泡馍:不是每一个脱下长衫的人在下沉市场重获新生,并不是每一个养猪养鸡的高学历人才都会成功。现实是很多人的“长衫”就是自己为数不多甚至唯一的底牌了,拼尽全力拿到一个不错的学历,这时候主流媒体告诉对方脱下长衫也可以活的精彩,其实真的挺难过的。强者恒强,但是弱者是人群的底色。 本质上是整个市场的问题,没有足够多的增长点,没有足够多的岗位,自上而下没有积极向上的氛围。外企撤出,供应链缺失...在发展的过程中总有阵痛,现阶段可能就是我们承受阵痛的过程。之前在牛客看到一个小伙伴说:时代的一粒灰尘,落在谁的身上,都将是无法承受之重!深有感触。
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务