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

题目描述

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

                                        ——《诗经·卷阿》

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

输入描述:

  1. 第一行有一个正整数n,表示百鸟国节点个数。
    接下来n-1行,第i行两个正整数a

i

  1. ,b

i

  1. 用空格隔开,表示树上节点a

i

  1. ,b

i

  1. 之间有一条边。

输出描述:

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

输入例子:
  1. 3
  2. 1 2
  3. 2 3
输出例子:
  1. 2

-->

示例1

输入

复制

  1. 3
  2. 1 2
  3. 2 3

输出

复制

  1. 2
示例2

输入

复制

  1. 3
  2. 1 2
  3. 1 3

输出

复制

  1. 1
示例3

输入

复制

  1. 4
  2. 1 2
  3. 2 3
  4. 2 4

输出

复制

  1. 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[];
  13. int dfs(int u,int fa){
  14. int maxn=,sum=;
  15. for(int i=;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==) 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)==){
  29. for(i=;i<=n;++i)g[i].clear();
  30. for(i=;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\n",dfs(,));
  36. }
  37. return ;
  38. }
  1. 对于100%的测试数据:
    1 n 1000000
    数据量较大,注意使用更快的输入输出方式。

牛客练习赛24-B-贪心的更多相关文章

  1. 牛客练习赛24题解(搜索,DP)

    A题,C题不讲,基础题(但是我要抨击一下这次比赛,卡cin,cout,卡的太狠了,根本就不让过的那种,QAQ) 链接:https://www.nowcoder.com/acm/contest/157/ ...

  2. 牛客练习赛43D(贪心)

    有生之年我居然也能不看题解做出来题QAQ-- 发现c.d是0.1序列而不是随机数列说明有蹊跷,于是发现负数直接配0,正数配1即可.不知道哪个最小,那就全求一下吧--我的做法的坑点是数正好为1时不可以选 ...

  3. [堆+贪心]牛客练习赛40-B

    传送门:牛客练习赛40 题面: 小A手头有 n 份任务,他可以以任意顺序完成这些任务,只有完成当前的任务后,他才能做下一个任务 第 i 个任务需要花费  x_i 的时间,同时完成第 i 个任务的时间不 ...

  4. 牛客练习赛51 **E-数列** (二分,贪心,构造)

    牛客练习赛51 E-数列 链接:https://ac.nowcoder.com/acm/contest/1083/E来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...

  5. 牛客练习赛48 A· 小w的a+b问题 (贪心,构造,二进制)

    牛客练习赛48 A· 小w的a+b问题 链接:https://ac.nowcoder.com/acm/contest/923/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C ...

  6. 【并查集缩点+tarjan无向图求桥】Where are you @牛客练习赛32 D

    目录 [并查集缩点+tarjan无向图求桥]Where are you @牛客练习赛32 D PROBLEM SOLUTION CODE [并查集缩点+tarjan无向图求桥]Where are yo ...

  7. 牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 逻辑,博弈 B

    牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 https://ac.nowcoder.com/acm/contest/218/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 2621 ...

  8. 牛客练习赛31 D 神器大师泰兹瑞与威穆 STL,模拟 A

    牛客练习赛31 D 神器大师泰兹瑞与威穆 https://ac.nowcoder.com/acm/contest/218/D 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 26214 ...

  9. 最小生成树--牛客练习赛43-C

    牛客练习赛43-C 链接: https://ac.nowcoder.com/acm/contest/548/C 来源:牛客网 题目描述 ​ 立华奏是一个刚刚开始学习 OI 的萌新. 最近,实力强大的 ...

  10. 牛客练习赛28-B(线段树,区间更新)

    牛客练习赛28 - B 传送门 题目 qn姐姐最好了~ ​ qn姐姐给你了一个长度为n的序列还有m次操作让你玩, ​ 1 l r 询问区间[l,r]内的元素和 ​ 2 l r 询问区间[l,r]内的 ...

随机推荐

  1. python反爬虫解决方法——模拟浏览器上网

    之前第一次练习爬虫的时候看网上的代码有些会设置headers,然后后面的东西我又看不懂,今天终于知道了原来这东西是用来模拟浏览器上网用的,因为有些网站会设置反爬虫机制,所以如果要获取内容的话,需要使用 ...

  2. C#Listview添加数据,选中最后一行,滚屏

    this.listView.Items.Add(lvi); this.listView.EnsureVisible(this.listView.Items.Count - 1); this.listV ...

  3. MongoDB数据库的基本操作

    非关系型数据库(json数据库) npm install mongoose --save 启动数据酷: mongod --config /usr/local/etc/mongod.conf 这里可以将 ...

  4. Jedis使用

    Jedis是java调用Redis的接口. 一.Maven中的jedis依赖包 <!-- https://mvnrepository.com/artifact/redis.clients/jed ...

  5. linux系统下各类软件安装笔记

    安装环境: linux版本:ubuntu 16.04 安装python3.6 sudo add-apt-repository ppa:jonathonf/python-3.6              ...

  6. [原][c++][数学]osg常用图形数学算法小结

    1.cos趋近 // a reasonable approximation of cosine interpolation double smoothStepInterp( double t ) { ...

  7. Lua面向对象之二:类继承

    1.类继承 ①代码 Sharp = { } --① 父类 function Sharp:new() local new_sharp = { } self.__index = self --②,self ...

  8. HDU 4812 D Tree

    HDU 4812 思路: 点分治 先预处理好1e6 + 3以内到逆元 然后用map 映射以分治点为起点的链的值a 成他的下标 u 然后暴力跑出以分治点儿子为起点的链的值b,然后在map里查找inv[b ...

  9. 量化投资的Python库——Tushare

    本来想用python自带的help命令和dir命令,来写一个关于Tushare库的使用手册呢,但是后来发现了Tushare的官方网站, ̄□ ̄||,网址如下: http://tushare.org/ 把 ...

  10. 最多的划分来使数组有序 Max Chunks To Make Sorted

    2018-12-01 11:05:46 一.Max Chunks To Make Sorted 问题描述: 问题求解: 由于没有重复,所以直观的来看对于每个遇到数,其能够被划分出来的前提是其前面已经有 ...