Description

Input

Output

Sample Input

4
2 3
2 1
2 4

Sample Output

4

Data Constraint

Solution

  • 首先,这是一棵有根树,先要找到它的根是哪个节点。

  • 由于边是有向边,入度为零的点就是根节点了。

  • 接着,如何处理出答案呢?

  • 从根节点开始遍历这棵树,做一次 DFS。记录三个值:

    1. Size[i]Size[i] 表示以 ii 为根的子树的大小(节点数);
    2. Mx[i]Mx[i] 表示以 ii 为根的子树中节点标号最大是多少;
    3. Mn[i]Mn[i] 表示以 ii 为根的子树中节点标号最小是多少;
  • 那么对于一个节点 ii ,如果满足:

    Mx[i]−Mn[i]+1=Size[i]

    Mx[i]-Mn[i]+1=Size[i]

  • 则说明点 ii 符合条件,答案加一。时间复杂度 O(N)O(N) 。

Code

#include<cstdio>
using namespace std;
const int N=100001;
int n,tot,ans;
int first[N],next[N],en[N];
int size[N],mx[N],mn[N];
bool bz[N];
inline int read()
{int X=0,w=1; char ch=0;while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();}while(ch>='0' && ch<='9') X=(X<<3)+(X<<1)+ch-'0',ch=getchar();return X*w;
}
inline void dfs(int x)
{size[mn[x]=mx[x]=x]=1;for(int i=first[x];i;i=next[i]){dfs(en[i]);size[x]+=size[en[i]];if(mx[en[i]]>mx[x]) mx[x]=mx[en[i]];if(mn[en[i]]<mn[x]) mn[x]=mn[en[i]];}if(mx[x]-mn[x]+1==size[x]) ans++;
}
int main()
{int n=read();for(int i=1;i<n;i++){int x=read(),y=read();next[++tot]=first[x];first[x]=tot;bz[en[tot]=y]=true;}for(int i=1;i<=n;i++)if(!bz[i]){dfs(i);break;}printf("%d",ans);return 0;
}

JZOJ 5221. 【GDOI2018模拟7.10】A相关推荐

  1. JZOJ.4377[GDOI2016模拟3.10]习用之语 解题报告

    习用之语 题目大意 给出 N N个长度为4的字符串,求出仅差DD个字符的字符串的对数. 输入格式 第一行两个正整数 N N,DD. 接下来 N N行,每行一个长度为4的字符串. 输出格式 一行,一个整 ...

  2. 计算机二级vfp模拟考试题,计算机等级考试二级VFP模拟练习题[10]

    计算机等级考试二级VFP模拟练习题[10] 分类:计算机等级 | 更新时间:2016-07-08| 来源:转载 226.下列各表达式中,结果总是逻辑值的是(D ) A.算术运算表达式 B.字符运算表达 ...

  3. 备战Noip2018模拟赛10(B组) T1 Max 和最大

    10月20日备战Noip2018模拟赛10 T1 Max和最大 题目描述 CYF的黑题,偏题,怪题,黑科技题,大码农题都做腻了,于是她想做一下签到水题,她希望从有一个长度为ň的整数序列(A1,A2,. ...

  4. 全国计算机等级考试全真模拟,全国计算机等级考试全真模拟试卷(10)

    全国计算机等级考试全真模拟试卷(10) (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 全国计算机等级考试全真模拟试卷(I 0)一级MS ...

  5. 厦门大学c语言在线测试,厦门大学《C语言》模拟试卷(10级).doc

    厦门大学<C语言>模拟试卷(10级).doc C语言程序设计试题A答案考生信息栏 经济 学院 计统 系 专业 2010 年级姓名 学号装 订 线一.单项选择题每题2分,共60分 注意答案纸 ...

  6. Cisco PT模拟实验(10) 路由器的基本配置

    Cisco PT模拟实验(10) 路由器的基本配置 实验目的: 掌握路由器几种常用配置方法 熟悉路由器不同的命令行操作模式 掌提路由器的基本配置命令 实验背景: 作为网络管理员,你第一次在设备机房对路 ...

  7. jzoj P1135 【2011.12.10普及模拟】泽泽在中国

    题目描述 众所周知,在中国有个地方叫"万里长城". 泽泽一天后山玩,在捉蟋蟀的时候,忽然看见一个奇怪的洞.泽泽好奇,就钻了进去,结果-- 泽泽来到中国万里长城上.长城的城墙很高,泽 ...

  8. JZOJ 5574. 【NOI2018模拟3.10】占领

    Description Input Output Sample Input 输入1: 6 2 1 1 2 2 3 2 4 1 5 5 6 输入2: 10 1 2 1 2 2 5 1 3 1 4 4 6 ...

  9. JZOJ 100035. 【NOIP2017提高A组模拟7.10】区间

    Description Input Output Sample Input sample1: 4 2 10 5 1 1 10 sample2: 1000 97 96998351 41 1668 505 ...

最新文章

  1. TestLink学习七:TestLink测试用例Excel转换XML工具
  2. 传2020年苹果Mac将用自制芯片
  3. Spring Boot 中使用 @Transactional 注解配置事务管理
  4. api工具 graphql_为什么GraphQL是API的未来
  5. java spark yarn_《Spark官方文档》在YARN上运行Spark
  6. 硬核 App,这项新功能一定要打开,关键时刻能救命!!
  7. CCF201412-2 Z字形扫描(解法二)(100分)【废除!!!】
  8. ngnix学习(二)ngnix常用命令
  9. 使用Java的MessageDigest实现MD5加密算法
  10. 2019-CS224n-Assignment1
  11. 制作QQ微信支付宝三合一收款码
  12. ipcam 网络摄像机介绍
  13. 利用大数据 勾画虚开企业脸谱
  14. ZBrush如何布尔运算
  15. 【原创干货】6000字、22个案例详解Pandas数据分析/预处理时的实用技巧,超简单...
  16. trove 镜像制作
  17. vxWorks启动时间
  18. 温故知新(五)——三参数陷波滤波器离散化推导及MATLAB实现
  19. Nginx系列1: 正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡
  20. 51单片机的智能窗帘设计

热门文章

  1. SDN学习之旅-RYU笔记(1)
  2. 快慢指针寻找循环节点
  3. pyinstaller打包exe程序教程推荐及需要注意的点
  4. java switch 值_Java switch多值匹配操作详解
  5. Gateway配合sentinel自定义限流_你知道如何使用阿里Sentinel实现接口限流吗?
  6. [scala-spark]7. list 与 map
  7. Singleton模式的实现
  8. C++中namespace的理解与实践
  9. C#计算两点间的距离
  10. 电路交换网络中,每条电路独占其经过的物理链路。