ssl2646-线段树练习3【线段树】
正题
题意
一条长m线,有n条长度不同的线段,求该线被分割成多少段
解题思路
标记颜色,然后统计是用一个color表示上次搜到的(因为线段树的查找顺序是从左到右的)去重
代码
#include<cstdio>
#include<cstring>
using namespace std;
struct xjq{int l,r,cover;
}tree[400001];
int n,ll,rr,w,s,cl,color,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,int c)//插入
{if (tree[x].cover==c) return;if (tree[x].l==a && tree[x].r==b)//标记{tree[x].cover=c;return;}if (tree[x].cover>=0)//下传标记{tree[x*2].cover=tree[x].cover;tree[x*2+1].cover=tree[x].cover;tree[x].cover=-1;}int m=tree[x*2].r;if (b<=m) inster(x*2,a,b,c);else if (a>=m) inster(x*2+1,a,b,c);else{inster(x*2,a,m,c);inster(x*2+1,m,b,c);}return;
}
void find(int x)
{if (tree[x].cover>=0){if (tree[x].cover!=color){s++;color=tree[x].cover;//标记去重}return;}if (tree[x].r-tree[x].l==1) return;else{find(x*2);find(x*2+1);}
}
int main()
{scanf("%d%d",&n,&m);build(1,1,m);for (int i=1;i<=n;i++){scanf("%d%d%d",&ll,&rr,&cl);inster(1,ll,rr,cl);}s=0;color=-2;find(1);printf("%d",s);
}
ssl2646-线段树练习3【线段树】相关推荐
- 解题报告: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)区间操作的数据结构,随着做一些稍微烦一点的题,有时候会发现有些情况要开一个数组的线段树,更有甚者要树套树,而在很多情况下线段树就不能把所有点都开满了(否 ...
最新文章
- C++ 笔记(17)— 类和对象(构造函数、析构函数、拷贝构造函数)
- 踏上云旅程 存储准备好了吗
- 寻找可用的机器学习算法
- 三星笔记本进入BIOS后找不到U盘启动项/快速启动键F12没有反应
- json字符串,JSON对象,JSON数组的区别与相互转换
- 关于get请求的乱码问题
- MySQL从入门到精通教程
- pdf拆分成一页一页,pdf拆分方法
- 说课稿模板计算机,计算机说课稿
- android读取存储mysql图片,Android从Sqlite数据库保存并获取图像
- win7计算机excel快捷键,excel快捷键大全 公式
- 构建自己的Linux 之三 初步完善(提供网络功能等)
- 脱虚向实,数说故事联合中山大学正式启动“AI虚拟偶像”研究计划
- 强制关机后进不了系统
- [附源码]java毕业设计病历管理系统设计
- Rocket之nameServer
- 【数据治理】数据分析八大模型:OGSM模型
- 一则帖子整理:30岁人生困惑,路在何方?
- 汽车GPS定位器在汽车金融风控中如何把控
- Vue项目mint-ui引入方式(完整引入、按需引入)
热门文章
- 百度云cdn设置州五年制大专_[百度云CDN]配置过程坑点集合
- row number函数_Hive排名函数ROW_NUMBER,RANK 和 DENSE_RANK的区别
- freertos源码详解与应用开发 pdf_互联网企业面试必问Spring源码?搞定Spring源码,看完这篇就够了...
- matlab eval函数_matlab自动给变量命名
- 详解队列在前端的应用,深剖JS中的事件循环Eventloop,再了解微任务和宏任务
- 数据结构-树:根节点、子节点、叶子节点是什么?
- LED计数电路,5输入按键编码器,7段数码管显示驱动集成为LED计数测试电路
- 2019年第十届蓝桥杯国赛B组试题A-平方序列-枚举
- D. 关灯问题(规律或二分)
- 唯品会php接口,唯品会链接生成联盟链接 - 唯品会API免费API接口-唯品会API开放API接口-云商数据(www.ecapi.cn)...