珂朵莉的值域连续段
链接:https://www.nowcoder.com/acm/contest/40/B
来源:牛客网
题目描述

珂朵莉给你一个有根树,求有多少个子树满足其内部节点编号在值域上连续    一些数在值域上连续的意思即其在值域上构成一个连续的区间
输入描述:
第一行有一个整数n,表示树的节点数。接下来n–1行,每行两个整数x,y,表示存在一条从x到y的有向边。输入保证是一棵有根树。
输出描述:
输出一个数表示答案
示例1
输入
5
2 3
2 1
2 4
4 5
输出
5
说明
节点1子树中编号为1,值域连续节点3子树中编号为3,值域连续节点5子树中编号为5,值域连续节点4子树中编号为4,5,值域连续节点2子树中编号为1,2,3,4,5,值域连续

备注:
对于100%的数据,有n <=100000
//日常感谢我的大巨轮
//a[i][1]!=-1 return 判断条件很好
//a[i][0]存最小数  a[i][1]存最大数   a[i][2]存有几个数
//如果a[i][1]-a[i][0]+1==a[i][2]  就代表连续#include <bits/stdc++.h>
using namespace std;
const int maxxx=100005;
vector <int> vec[maxxx];
int a[maxxx][3];
int n;
void dfs(int i)
{if(a[i][1]!=-1) return;int minn=i,maxx=i,k=1;int l=vec[i].size();for(int j=0;j<l;j++){int x=vec[i][j];dfs(x);if(minn>a[x][0]) minn=a[x][0];if(maxx<a[x][1]) maxx=a[x][1];k=k+a[x][2];}a[i][0]=minn,a[i][1]=maxx,a[i][2]=k;
}
int main()
{scanf("%d",&n);for(int i=0;i<=n;i++){a[i][0]=1000000;a[i][1]=-1;}for(int i=1;i<n;i++){int a,b;scanf("%d%d",&a,&b);vec[a].push_back(b);}for(int i=1;i<=n;i++){dfs(i);}int sum=0;for(int i=1;i<=n;i++){if(a[i][1]-a[i][0]+1==a[i][2])sum++;}printf("%d\n",sum);return 0;
}

搜索+思维 珂朵莉的值域连续段相关推荐

  1. 牛客练习赛9 B - 珂朵莉的值域连续段

    题目描述 珂朵莉给你一个有根树,求有多少个子树满足其内部节点编号在值域上连续 一些数在值域上连续的意思即其在值域上构成一个连续的区间 输入描述: 第一行有一个整数n,表示树的节点数.接下来n–1行,每 ...

  2. 珂朵莉的值域连续段——DFS

    题目描述: 珂朵莉给你一个有根树,求有多少个子树满足其内部节点编号在值域上连续 一些数在值域上连续的意思即其在值域上构成一个连续的区间 输入描述: 第一行有一个整数n,表示树的节点数. 接下来n–1行 ...

  3. 牛客练习赛9。 B 柯朵莉的值域连续端

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 珂朵莉给你一个有根树,求有多少个子树满足其 ...

  4. CF896C Willem, Chtholly and Seniorious【珂朵莉树】

    >Link luogu CF896C >Description >解题思路 珂朵莉树,一种奇妙的数据结构使得暴力跑的飞快 这种数据结构的重要就是"推平",题目中的 ...

  5. 数据结构 【树状数组】【线段树】【珂朵莉树】

    一.区间合并 1.AcWing245你能回答这些问题吗 分析: 线段树.维护四个变量,即可实现区间合并. mx 区间最大连续子段和 mx_l 以区间左端点为左界的最大连续字段和 mx_r 以区间左端点 ...

  6. [转]我的数据结构不可能这么可爱!——珂朵莉树(ODT)详解

    参考资料: Chtholly Tree (珂朵莉树) (应某毒瘤要求,删除链接,需要者自行去Bilibili搜索) 毒瘤数据结构之珂朵莉树 在全是珂学家的珂谷,你却不知道珂朵莉树?来跟诗乃一起学习珂朵 ...

  7. 洛谷P3987 我永远喜欢珂朵莉~ 树状数组+vector(暴力)

    题目链接:我永远喜欢珂朵莉- 在太阳西斜的这个世界里,置身天上之森.等这场战争结束之后,不归之人与望眼欲穿的众人, 人人本着正义之名,长存不灭的过去.逐渐消逝的未来.我回来了,纵使日薄西山,即便看不到 ...

  8. 一种黑科技:珂朵莉树

    首先要明白的是:珂朵莉树(ODT)是一种用来骗分的暴力数据结构. 珂朵莉树的思想是利用集合set,把相同且连续的元素合并为一个个区间,从而进行区间修改:因此,珂朵莉树是区间的集合,这点可以通过定义结构 ...

  9. 珂朵莉树/ODT 学习笔记

    珂朵莉树/ODT 学习笔记 起源自 CF896C.珂朵莉yyds! 核心思想 把值相同的区间合并成一个结点保存在 set 里面. 用处 骗分.只要是有区间赋值操作的数据结构题都可以用来骗分.在数据随机 ...

最新文章

  1. 面向Mobile device的CNN模型手工设计与NAS分析总结,MobileNet V1,V2,V3,Efficient,MNasNet以及Efficient network design
  2. c# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值
  3. hls二次加密 m3u8_HLS实战之Wireshark抓包分析
  4. 1077: 字符串加密
  5. python在线编译-在线编译python
  6. python编程题3
  7. Hibernate--使用xml配置映射关系
  8. 网页html语言怎么看,怎样查看网页的css代码?
  9. js修改id的值_如何修改pytesthtml源码来优化接口自动化测试报告
  10. 吸收塔如何提高吸收率_想让肌肉生长得更好,蛋白质的补充很重要,如何选择你知道吗?...
  11. 【学术】施一公分享自身经验:如何提高自己的专业英文文献阅读能力
  12. 利用cookie 解决多站点共享session的解决方案
  13. NRF24L01+模块:一对一双向通信,成功!
  14. 夜的钢琴曲五—吉他指弹
  15. 【转】js 判断今天日期是否超过指定日期
  16. JS中如何删除li节点
  17. NNS域名系统之域名竞拍
  18. tf.losses.mean_squared_error函数浅析
  19. 各大IT公司校园招聘程序猿笔试 面试题集锦
  20. 如何修复Word文档XML提示

热门文章

  1. ORA-04031导致数据库宕机问题分析
  2. 跟着狂神学JAVA的第七天
  3. 技术,生态之基——保险科技生态建设
  4. 毫米波雷达专题(一)之基本原理
  5. 【论文解读系列】MLLM研究综述
  6. 《学术规范与论文写作》or《如何写好科研论文》--清华大学,【论文写作语法练习】
  7. 汽车芯片REF4132A40DBVRQ1 REF4132-Q1低功耗精密电压基准产品
  8. 暑期实践Vue7.17
  9. 谈 Dojo 应用的 UI 自动化测试
  10. 每日英语(2021-3-2)