zoukankan      html  css  js  c++  java
  • 牛客练习赛24-B-贪心

    链接:https://www.nowcoder.com/acm/contest/157/B
    来源:牛客网

    题目描述

        凤凰于飞,翙翙其羽,亦集爰止。

                                            ——《诗经·卷阿》

        传说,凤凰是百鸟之王。有一天,凤凰要召开百鸟大会,百鸟国是一个由n个节点组成的树,每个节点有一只鸟,开会的节点定在1号节点。每只鸟可以花费1s通过一条边,由于每根树枝(边)的载重有限,只允许一只鸟同时通过。作为会议的策划师,HtBest想知道百鸟国的所有鸟在1点集合最少需要多少秒。


    输入描述:

    第一行有一个正整数n,表示百鸟国节点个数。
    接下来n-1行,第i行两个正整数a
    i
    ,b
    i
    用空格隔开,表示树上节点a
    i
    ,b
    i
    之间有一条边。

    输出描述:

    第一行一个整数,表示集合最少需要的时间。
    示例1

    输入

    复制
    3
    1 2
    2 3

    输出

    复制
    2
    示例2

    输入

    复制
    3
    1 2
    1 3

    输出

    复制
    1
    示例3

    输入

    复制
    4
    1 2
    2 3
    2 4
    

    输出

    复制
    3

    备注:

        这个题卡了好久没想到...>_<...

        观察后会发现,每条边每时每刻都会有鸟在上面走而且不会间断,除非这条边以下已经没有鸟了。我们只要统计一下根对应的每个子树的节点个数取一个最大值就是答案。

        

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<map>
     5 #include<set>
     6 #include<vector>
     7 #include<algorithm>
     8 #include<cmath> 
     9 using namespace std;
    10 #define LL long long 
    11 #define PI acos(-1.0)
    12 vector<int>g[1000100]; 
    13 int dfs(int u,int fa){
    14     int maxn=0,sum=1;
    15     for(int i=0;i<g[u].size();++i){
    16         if(g[u][i]==fa)continue;
    17         int len=dfs(g[u][i],u);
    18         sum+=len;
    19         maxn=max(maxn,len);
    20     }
    21     if(u==1) return maxn;
    22     else return sum;
    23 }
    24 int main()
    25 {
    26     int m,n,i,j,k;
    27     int u,v;
    28     while(scanf("%d",&n)==1){
    29         for(i=1;i<=n;++i)g[i].clear();
    30         for(i=1;i<n;++i){
    31             scanf("%d%d",&u,&v);
    32             g[u].push_back(v);
    33             g[v].push_back(u);
    34         }
    35         printf("%d
    ",dfs(1,0));
    36     }
    37     return 0;
    38 }
    对于100%的测试数据:
    1 ≤ n ≤ 1000000
    数据量较大,注意使用更快的输入输出方式。
  • 相关阅读:
    33. 搜索旋转排序数组
    54. 螺旋矩阵
    46. 全排列
    120. 三角形最小路径和
    338. 比特位计数
    746. 使用最小花费爬楼梯
    spring boot的一些常用注解
    SSM整合Dubbo案例
    一些面试题
    Spring Aop和Spring Ioc(二)
  • 原文地址:https://www.cnblogs.com/zzqc/p/9458888.html
Copyright © 2011-2022 走看看