Description

在一条数轴上有N个点,分别是1~N。一开始所有的点都被染成黑色。接着
我们进行M次操作,第i次操作将[Li,Ri]这些点染成白色。请输出每个操作执行后
剩余黑色点的个数。

Input

输入一行为N和M。下面M行每行两个数Li、Ri

Output

输出M行,为每次操作后剩余黑色点的个数。

Sample Input

10 3
3 3
5 7
2 8

Sample Output

9
6
3

HINT

数据限制
对30%的数据有1<=N<=2000,1<=M<=2000
对100%数据有1<=Li<=Ri<=N<=200000,1<=M<=200000

#include<iostream>
#include<cstdio>
using namespace std;
int sum,tot=0;
struct treetype
{int Left,Right; //区间[Left,Right) int lptr,rptr; //左右孩子指针 int sum; //区间和 int bj; //标记
}t[2000000];
void buildtree(int ll,int rr)
{int cur=++tot;t[cur].Left=ll; t[cur].Right=rr;if(ll!=rr-1){t[cur].lptr=tot+1;buildtree(ll,(ll+rr)/2);t[cur].rptr=tot+1;buildtree(+(ll+rr)/2,rr);t[cur].sum=t[t[cur].lptr].sum+t[t[cur].rptr].sum;}else t[cur].sum=1;
}
void update(int k) //延迟信息下传
{t[t[k].lptr].sum=0; t[t[k].rptr].sum=0; //左右子区间清空 t[t[k].lptr].bj=1; t[t[k].rptr].bj=1; //传递标志 t[k].bj=0; //清除标志
}void change(int k,int ll,int rr) //修改区间[ll,rr)元素的值
{if (ll<=t[k].Left&&rr>=t[k].Right) //覆盖当前区间
    {t[k].sum=0; //区间和=0 t[k].bj=1; //设标志
    }else{if(t[k].bj) update(k); //传递修改 if (ll<(t[k].Left+t[k].Right)/2) //修改左区间
            change(t[k].lptr,ll,rr);if (rr>(t[k].Left+t[k].Right)/2) //修改右区间
            change(t[k].rptr,ll,rr);t[k].sum=t[t[k].lptr].sum+t[t[k].rptr].sum; //更新区间和
    }
}int query(int k,int ll,int rr) //查询[ll,rr)区间和
{if (ll<=t[k].Left&&rr>=t[k].Right) return t[k].sum;if (t[k].bj) update(k); //传递修改 int ans=0;if (ll<(t[k].Left+t[k].Right)/2) ans+=query(t[k].lptr,ll,rr);if (rr>(t[k].Left+t[k].Right)/2) ans+=query(t[k].rptr,ll,rr);return ans;
}int main()
{int n,tim,x,y;scanf("%d%d",&n,&tim);sum=n;buildtree(1,n+1);for (int i=1;i<=tim;i++){scanf("%d%d",&x,&y);change(1,x,y+1);printf("%d\n",query(1,1,n+1));}return 0;
}

转载于:https://www.cnblogs.com/liumengyue/p/5107358.html

【CODEVS1191】数轴染色相关推荐

  1. Codevs 1191 数轴染色

    1191 数轴染色 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 在一条数轴上有N个点,分别是1-N.一开始所有的点都被染成黑色. ...

  2. NOIP知识汇总及模板整理

    排序 求逆序对 NOIP2013火柴排队 洛谷 P2309 loidc 卖卖萌 二分 牢记二分姿势 前缀和及差分优化 NOIP2012借教室差分优化 贪心 洛谷 P3093 牛奶调度 HDU 5500 ...

  3. codevs 1191 树轴染色 线段树区间定值,求和

    codevs 1191 树轴染色 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://www.codevs.cn/problem/1191/ Des ...

  4. codeforces 1635E-Cars (二分图染色+拓扑排序)

    传送门 difficult:2200difficult:2200difficult:2200 题意 数轴上存在 nnn 辆车和 mmm 个限制,每个限制以 opopop.uuu.vvv 的形式表示,其 ...

  5. [C] 深度优先搜索解决连通块/染色问题——求岛的个数

    本文介绍用DFS解决连通块个数问题 有关dfs的介绍见另外一篇:不撞南墙不回头--深度优先搜索 例题 宝岛探险 题目描述 一个小岛由一个主岛和一些复附属岛屿组成,该岛使用一个二维矩阵表示,其中数字表示 ...

  6. [BZOJ4033][HAOI2015]树上染色

    4033: [HAOI2015]树上染色 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 2108  Solved: 901 [Submit][Sta ...

  7. 2-sat问题,输出方案,几种方法(赵爽的论文染色解法+其完全改进版)浅析 / POJ3683...

    本文原创于  2014-02-12 09:26. 今复习之用,有新体会,故重新编辑. 2014-02-12 09:26: 2-sat之第二斩!昨天看了半天论文(赵爽的和俉昱的),终于看明白了!好激动有 ...

  8. 【Codeforces】1080C Masha and two friends (棋盘染色)

    http://codeforces.com/problemset/problem/1080/C 给定一个棋盘,(1,1)的位置是白色,观察可以知道,如果横纵坐标之和是偶数,那么是白色,奇数的话就是黑色 ...

  9. Luogu P3177 [HAOI2015] 树上染色(树上背包)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P3177 [HAOI2015] 树上染色 有一棵点数为 NNN 的树,树边有边权.给你一 ...

  10. UVA1364 Knights of the Round Table(双连通分量、二分图染色,超详细解释)

    整理的算法模板合集: ACM模板 UVA1364 Knights of the Round Table 题目中要求互相有憎恨关系的人不能坐在相邻的位置,一个圆桌可以很形象地看作是一个环,也就是说我们两 ...

最新文章

  1. SUSE glibc升级为2.18过程记录
  2. 逻辑短路 java_逻辑操作符中的短路现象
  3. JavaFX自定义控件– Nest Thermostat第2部分
  4. 泽众性能测试软件,软件测试工具-测试管理工具-自动化测试工具-性能测试工具-SPASVO泽众软件测试网...
  5. 软件再快不如自带:找不到电脑文件?教你这 3 个Mac搜索技巧
  6. iTextSharp 添加文字内容
  7. Unity3d之AR小游戏
  8. Chapter 19 Time-varying Treatments
  9. PCB设计指南:安规、布局布线、EMC、热设计、工艺
  10. php中mysqli_fetch_assoc( )与mysqli_fetch_row( )的区别
  11. ZZULIOJ-1067,有问题的里程表(Python)
  12. Suzy找到实习了吗Day 3 | 链表开始啦 203移除链表元素 707设计链表 206 反转链表
  13. python运行窗口闪退_python+selenium自动化测试,IE浏览器运行过程中出现闪退
  14. 整顿一年再次增资近50%,为什么蚂蚁集团要重启IPO?
  15. 潜伏在我们身边的机器人
  16. 华为代理服务器相关配置
  17. 【数据恢复】使用FinalData进行数据恢复。
  18. 软考高级 真题 2010年上半年 信息系统项目管理师 论文
  19. (1) Dot net“很难”实现像Java一样的跨平台性
  20. 【嵌入式】STM32利用arm-dsp库进行FIR滤波

热门文章

  1. 换IP的几种常见方法
  2. Good, then we can start
  3. 深度解读CSS3 position的属性
  4. 从C#到Swift原来这么简单,So Easy!
  5. 笔谈FFmpeg(二)
  6. 奇盾安防监控视频恢复案例
  7. umount强制卸载不起作用,卸载光驱终极办法---fuser
  8. hive Beeline plus HiveServer2简单使用
  9. go语言:函数参数传递详解
  10. classloader隔离练习