正题


题意

一条长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【线段树】相关推荐

  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. C++ 笔记(17)— 类和对象(构造函数、析构函数、拷贝构造函数)
  2. 踏上云旅程 存储准备好了吗
  3. 寻找可用的机器学习算法
  4. 三星笔记本进入BIOS后找不到U盘启动项/快速启动键F12没有反应
  5. json字符串,JSON对象,JSON数组的区别与相互转换
  6. 关于get请求的乱码问题
  7. MySQL从入门到精通教程
  8. pdf拆分成一页一页,pdf拆分方法
  9. 说课稿模板计算机,计算机说课稿
  10. android读取存储mysql图片,Android从Sqlite数据库保存并获取图像
  11. win7计算机excel快捷键,excel快捷键大全 公式
  12. 构建自己的Linux 之三 初步完善(提供网络功能等)
  13. 脱虚向实,数说故事联合中山大学正式启动“AI虚拟偶像”研究计划
  14. 强制关机后进不了系统
  15. [附源码]java毕业设计病历管理系统设计
  16. Rocket之nameServer
  17. 【数据治理】数据分析八大模型:OGSM模型
  18. 一则帖子整理:30岁人生困惑,路在何方?
  19. 汽车GPS定位器在汽车金融风控中如何把控
  20. Vue项目mint-ui引入方式(完整引入、按需引入)

热门文章

  1. 百度云cdn设置州五年制大专_[百度云CDN]配置过程坑点集合
  2. row number函数_Hive排名函数ROW_NUMBER,RANK 和 DENSE_RANK的区别
  3. freertos源码详解与应用开发 pdf_互联网企业面试必问Spring源码?搞定Spring源码,看完这篇就够了...
  4. matlab eval函数_matlab自动给变量命名
  5. 详解队列在前端的应用,深剖JS中的事件循环Eventloop,再了解微任务和宏任务
  6. 数据结构-树:根节点、子节点、叶子节点是什么?
  7. LED计数电路,5输入按键编码器,7段数码管显示驱动集成为LED计数测试电路
  8. 2019年第十届蓝桥杯国赛B组试题A-平方序列-枚举
  9. D. 关灯问题(规律或二分)
  10. 唯品会php接口,唯品会链接生成联盟链接 - 唯品会API免费API接口-唯品会API开放API接口-云商数据(www.ecapi.cn)...