ssl2647-线段树练习4【线段树】
正题
题意
一条长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【线段树】相关推荐
- 解题报告:P3834 【模板】可持久化线段树 2(主席树)详解
P3834 [模板]可持久化线段树 2(主席树) 题解 P3834 [[模板]可持久化线段树 2(主席树)] 1)静态求第k大数 可持久化线段树,不能用堆的方法存子结点了,所以用指针l表示左儿子r表示 ...
- 暑假集训8.10-网络流套树剖套线段树
题目:dtoj2797旅行商 其实就是裸的网络流套树剖套线段树其实代码不难码 emmmmmm我决定草率的直接上代码,这可能是一条无营养的博客.... #include<bits/stdc++.h ...
- 【BZOJ-3196】二逼平衡树 线段树 + Splay (线段树套平衡树)
3196: Tyvj 1730 二逼平衡树 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 2271 Solved: 935 [Submit][St ...
- 势能线段树/吉司机线段树-我没有脑子
势能线段树/吉司机线段树 BZOJ3211 花神游历各国 BZOJ5312 冒险 BZOJ4355 Play with sequence BZOJ4695 最假女选手 \(A_i = max(A_i, ...
- P3834 【模板】可持久化线段树 1(主席树)
传送门 如标题,主席树模板 稍微介绍一下主席树.. 主席树是很多个线段树的结合体 利用了单点修改不会更新太多节点的结论(反正这一题是这样..),后一个线段树借用前面线段树的节点,而对于更新的节点才开一 ...
- 【BZOJ-2325】道馆之战 树链剖分 + 线段树
2325: [ZJOI2011]道馆之战 Time Limit: 40 Sec Memory Limit: 256 MB Submit: 1153 Solved: 421 [Submit][Sta ...
- BZOJ3862Little Devil I——树链剖分+线段树
题目大意: 给一棵树,每条边可能是黑色或白色(起始都是白色),有三种操作: 1.将u到v路径上所有边颜色翻转(黑->白,白->黑) 2.将只有一个点在u到v路径上的边颜色翻转 3.查询u到 ...
- CodeForces - 160D Edges in MST(思维+tarjan/树链剖分+线段树)
题目链接:点击查看 题目大意:给出一张 n 个点 m 条边组成的带权无向图,现在对于每条边来说,确定一下其分类: 一定是最小生成树上的边 可能是最小生成树上的边 一定不是最小生成树的边 题目分析:两种 ...
- CodeForces - 609E Minimum spanning tree for each edge(最小生成树+树链剖分+线段树/树上倍增)
题目链接:点击查看 题目大意:给出一张 n 个点和 m 条边组成的无向图,现在询问包含每一条边的最小生成树 题目分析:考虑求解次小生成树的思路: 求出最小生成树 ans 枚举每一条非树边 ( u , ...
- 动态开点线段树(多棵线段树)的内存分配与回收
前言 线段树,是一个很好用的能支持O(logn)区间操作的数据结构,随着做一些稍微烦一点的题,有时候会发现有些情况要开一个数组的线段树,更有甚者要树套树,而在很多情况下线段树就不能把所有点都开满了(否 ...
最新文章
- 华为rh2285安装系统linux,华为2285h v5安装系统记
- Android监听应用程序安装和卸载
- 携程是如何把大数据用于实时风控的
- Angular如何自定义attribute指令
- python 3.6.5 shell_Linux 安装 Python3.6.5
- 内存对齐分配策略(含位域模式)
- Python机器学习及实践+从零开始通往Kaggle竞赛之路
- MongoDB教程——第2天
- mysql b tree索引原理_MySQL中B+Tree索引原理
- ulimit和core文件的使用方法
- 毕业设计之 ---- 基于大数据挖掘分析的大众点评评论文本挖掘
- VS中的debug和releasse版本的区别
- RobotStudio码垛机器人创建过程
- 【风马一族_php】
- 使用ajax爬取今日头条街拍图片
- 【Derivation】Nyquist采样定理
- java设置select选中_按值设置选择选项'selected'
- 如何用ChatGPT做新品上市推广方案策划?
- 阿里试用,女朋友逼着我给她排序
- Ubuntu 20.04没有声音播放时出现哒哒的噪音
热门文章
- linux备份文件到ftp上,Linux服务器下用FTP上传下载备份文件
- mysql视图实现的_mysql视图是什么?怎么实现?
- mysql使用索引下推的好处_mysql的索引下推理解和实践
- 适合手机端的ckeditor样式_抖音运营干货(三):9款手机视频剪辑APP,让你轻松玩转后期!...
- sqoop将hive导出到mysql_Sqoop hive导出到mysql[转]
- PyTorch深度学习实践
- leetcode206:反转链表
- Java当中迭代器的使用(遍历容器ArrayList, HashSet,HashMap)
- C++string容器-子串获取
- C++vector容器-数据存取