正题


题意

一条长m线,有n条长度不同的线段,查询x到x+1有多少条线


解题思路

标记直接覆盖颜色数,然后找到那个点,之后向上到根节点把所有叠加的线统计


代码

#include<cstdio>
#include<cstring>
using namespace std;
struct xjq{int l,r,cover;
}tree[400000];
int n,ll,rr,w,s,cl,h,m;
void build(int x,int a,int b)//建树
{tree[x].l=a;tree[x].r=b;if (b-a==1) return;else{int m=(a+b)/2;build(x*2,a,m);build(x*2+1,m,b);}
}
void inster(int x,int a,int b)//插入
{if (tree[x].l==a && tree[x].r==b){tree[x].cover++;return;//标记数}int m=tree[x*2].r;if (b<=m) inster(x*2,a,b);else if (a>=m) inster(x*2+1,a,b);else{inster(x*2,a,m);inster(x*2+1,m,b);}return;
}
void find(int x,int a,int b)//查找点
{if (tree[x].l==a && tree[x].r==b){h=x;return;}int m=tree[x*2].r;if (b<=m) find(x*2,a,b);else if (a>=m) find(x*2+1,a,b);else{find(x*2,a,m);find(x*2+1,m,b);}
}
int main()
{scanf("%d%d",&m,&n);build(1,1,m);for (int i=1;i<=n;i++){scanf("%d%d",&ll,&rr);inster(1,ll,rr);}scanf("%d%d",&ll,&rr);s=0;find(1,ll,rr);while (h!=0)//向上统计{if(tree[h].cover>0) s+=tree[h].cover;h/=2;}printf("%d\n",s);
}

ssl2647-线段树练习4【线段树】相关推荐

  1. 解题报告:P3834 【模板】可持久化线段树 2(主席树)详解

    P3834 [模板]可持久化线段树 2(主席树) 题解 P3834 [[模板]可持久化线段树 2(主席树)] 1)静态求第k大数 可持久化线段树,不能用堆的方法存子结点了,所以用指针l表示左儿子r表示 ...

  2. 暑假集训8.10-网络流套树剖套线段树

    题目:dtoj2797旅行商 其实就是裸的网络流套树剖套线段树其实代码不难码 emmmmmm我决定草率的直接上代码,这可能是一条无营养的博客.... #include<bits/stdc++.h ...

  3. 【BZOJ-3196】二逼平衡树 线段树 + Splay (线段树套平衡树)

    3196: Tyvj 1730 二逼平衡树 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 2271  Solved: 935 [Submit][St ...

  4. 势能线段树/吉司机线段树-我没有脑子

    势能线段树/吉司机线段树 BZOJ3211 花神游历各国 BZOJ5312 冒险 BZOJ4355 Play with sequence BZOJ4695 最假女选手 \(A_i = max(A_i, ...

  5. P3834 【模板】可持久化线段树 1(主席树)

    传送门 如标题,主席树模板 稍微介绍一下主席树.. 主席树是很多个线段树的结合体 利用了单点修改不会更新太多节点的结论(反正这一题是这样..),后一个线段树借用前面线段树的节点,而对于更新的节点才开一 ...

  6. 【BZOJ-2325】道馆之战 树链剖分 + 线段树

    2325: [ZJOI2011]道馆之战 Time Limit: 40 Sec  Memory Limit: 256 MB Submit: 1153  Solved: 421 [Submit][Sta ...

  7. BZOJ3862Little Devil I——树链剖分+线段树

    题目大意: 给一棵树,每条边可能是黑色或白色(起始都是白色),有三种操作: 1.将u到v路径上所有边颜色翻转(黑->白,白->黑) 2.将只有一个点在u到v路径上的边颜色翻转 3.查询u到 ...

  8. CodeForces - 160D Edges in MST(思维+tarjan/树链剖分+线段树)

    题目链接:点击查看 题目大意:给出一张 n 个点 m 条边组成的带权无向图,现在对于每条边来说,确定一下其分类: 一定是最小生成树上的边 可能是最小生成树上的边 一定不是最小生成树的边 题目分析:两种 ...

  9. CodeForces - 609E Minimum spanning tree for each edge(最小生成树+树链剖分+线段树/树上倍增)

    题目链接:点击查看 题目大意:给出一张 n 个点和 m 条边组成的无向图,现在询问包含每一条边的最小生成树 题目分析:考虑求解次小生成树的思路: 求出最小生成树 ans 枚举每一条非树边 ( u , ...

  10. 动态开点线段树(多棵线段树)的内存分配与回收

    前言 线段树,是一个很好用的能支持O(logn)区间操作的数据结构,随着做一些稍微烦一点的题,有时候会发现有些情况要开一个数组的线段树,更有甚者要树套树,而在很多情况下线段树就不能把所有点都开满了(否 ...

最新文章

  1. 华为rh2285安装系统linux,华为2285h v5安装系统记
  2. Android监听应用程序安装和卸载
  3. 携程是如何把大数据用于实时风控的
  4. Angular如何自定义attribute指令
  5. python 3.6.5 shell_Linux 安装 Python3.6.5
  6. 内存对齐分配策略(含位域模式)
  7. Python机器学习及实践+从零开始通往Kaggle竞赛之路
  8. MongoDB教程——第2天
  9. mysql b tree索引原理_MySQL中B+Tree索引原理
  10. ulimit和core文件的使用方法
  11. 毕业设计之 ---- 基于大数据挖掘分析的大众点评评论文本挖掘
  12. VS中的debug和releasse版本的区别
  13. RobotStudio码垛机器人创建过程
  14. 【风马一族_php】
  15. 使用ajax爬取今日头条街拍图片
  16. 【Derivation】Nyquist采样定理
  17. java设置select选中_按值设置选择选项'selected'
  18. 如何用ChatGPT做新品上市推广方案策划?
  19. 阿里试用,女朋友逼着我给她排序
  20. Ubuntu 20.04没有声音播放时出现哒哒的噪音

热门文章

  1. linux备份文件到ftp上,Linux服务器下用FTP上传下载备份文件
  2. mysql视图实现的_mysql视图是什么?怎么实现?
  3. mysql使用索引下推的好处_mysql的索引下推理解和实践
  4. 适合手机端的ckeditor样式_抖音运营干货(三):9款手机视频剪辑APP,让你轻松玩转后期!...
  5. sqoop将hive导出到mysql_Sqoop hive导出到mysql[转]
  6. PyTorch深度学习实践
  7. leetcode206:反转链表
  8. Java当中迭代器的使用(遍历容器ArrayList, HashSet,HashMap)
  9. C++string容器-子串获取
  10. C++vector容器-数据存取