题意:
     可以这样理解,有一条直线,然后用n条线段去覆盖,最后问全部都覆盖完之后还有多少是没有被完全覆盖的。

思路:

     一开始想的有点偏,想到起点排序,然后..失败了,原因是忘记了题目输入的顺序就是覆盖的顺序,后来突然想到了逆序,这个题目想到逆序也就差不多了,我们可以逆序处理,然后用异或操作去判断当前这段是否全部都被覆盖了,只要异或不是1,那么就是还有没覆盖的,那么答案++,更新这段,把这段全都覆盖上。


#include<stdio.h>
#include<string.h>
#include<algorithm>#define N 20005
#define lson l ,mid ,t << 1
#define rson mid + 1 ,r ,t << 1 | 1using namespace std;typedef struct
{int l ,r;
}EDGE;EDGE E[N];
int X[N*4];
int mark[N*4];
int num[N] ,numt[N];void PushUp(int t)
{X[t] = X[t<<1] & X[t<<1|1];return ;
}void PushDown(int t)
{if(mark[t]){mark[t<<1] = mark[t<<1|1] = 1;X[t<<1] = X[t<<1|1] = 1;mark[t] = 0;}return ;
}void BuidTree()
{memset(X ,0 ,sizeof(X));memset(mark ,0 ,sizeof(mark));return ;
}void Update(int l ,int r ,int t ,int a ,int b)
{if(a <= l && b >= r){X[t] = mark[t] = 1;return ;}PushDown(t);int mid = (l + r) >> 1;if(a <= mid) Update(lson ,a ,b);if(b > mid) Update(rson ,a ,b);PushUp(t);
}int Query(int l ,int r ,int t ,int a ,int b)
{if(a <= l && b >= r)return X[t];PushDown(t);int mid = (l + r) >> 1;int s1 = -1 ,s2 = -1;if(a <= mid) s1 = Query(lson ,a ,b);if(b > mid)  s2 = Query(rson ,a ,b);if(s1 == -1 && s2 == -1) return 0;if(s1 == -1) return s2;if(s2 == -1) return s1;return s1 & s2;
}int Search2(int n ,int a)
{int low = 1 ,up = n ,mid ,ans;while(low <= up){mid = (low + up) >> 1;if(a >= num[mid]){ans = mid;low = mid + 1;}else up = mid - 1;}return ans;
}int main ()
{int n ,i ,Ans ,t ,id ,nn;scanf("%d" ,&t);while(t--){scanf("%d" ,&n);for(id = 0 ,i = 1 ;i <= n ;i ++){scanf("%d %d" ,&E[i].l ,&E[i].r);numt[++id] = E[i].l;numt[++id] = E[i].r;}sort(numt + 1 ,numt + id + 1);nn = 0;for(i = 1 ;i <= id ;i ++)if(i == 1 || numt[i] != numt[i-1])num[++nn] = numt[i];BuidTree();for(Ans = 0 ,i = n ;i >= 1 ;i --){int l = Search2(nn ,E[i].l);int r = Search2(nn ,E[i].r);if(Query(1 ,nn ,1 ,l ,r)) continue;Ans ++;Update(1 ,nn ,1 ,l ,r);}printf("%d\n" ,Ans);}return 0;
}

POJ2528线段树段更新逆序异或(广告牌)相关推荐

  1. UVA11992不错的线段树段更新

    题意:       给你一个矩阵,最大20*50000的,然后有三个操作 1 x1 y1 x2 y2 v  把子矩阵的值全部都加上v 2 x1 y1 x2 y2 v  把子矩阵的值全部都变成v 2 x ...

  2. hdu1556 线段树段更新(简单题)

    题意: N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的"小飞鸽"牌电动车从气球a开始到气球b依次给每个 ...

  3. hdu4267线段树段更新,点查找,55棵线段树.

    题意:      给你N个数,q组操作,操作有两种,查询和改变,查询就是查询当前的这个数上有多少,更改是给你a b k c,每次从a到b,每隔k的数更改一次,之间的数不更改,就相当于跳着更新. 思路: ...

  4. POJ3277 线段树段更新,点询问+二分离散化+暴力

    题意:       x轴上有一些矩形,问你这些矩形覆盖的面积和是多少. 思路:       首先范围很大,n很小,果断离散化,然后我们就是求出任意区间的最大值作为当前区间的高,最后在算一遍答案就行了, ...

  5. hdu 5692 Snacks(dfs序+线段树区间更新)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5692 解题思路:这道题是树节点的点权更新,而且涉及到子树,常用的思路是利用dfs序,用线段树来对区间进 ...

  6. poj-2528线段树练习

    title: poj-2528线段树练习 date: 2018-10-13 13:45:09 tags: acm 刷题 categories: ACM-线段树 概述 这道题坑了我好久啊啊啊啊,,,, ...

  7. 【POJ - 3321】 Apple Tree(dfs序 + 线段树维护 或 dfs序 + 树状数组维护)

    题干: There is an apple tree outside of kaka's house. Every autumn, a lot of apples will grow in the t ...

  8. HDUOJ----1166敌兵布阵(线段树单点更新)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  9. hdu 3954(线段树区间更新)

    转载标记处:http://www.cnblogs.com/wang-jue/articles/2920341.html 思路:这道题所得到的经验与每个英雄的等级有关,一般的可能就用线段树一直更新到每一 ...

最新文章

  1. 推荐60+ Flex开发参考网站
  2. Linux系统openssl升级,在Linux系统上升级OpenSSL的方法
  3. Multi GET  API
  4. cad vba编程从入门到精通_【CAD教程】CAD2020零基础入门到精通全套视频教程
  5. 设计模式二:结构型模式
  6. vim编辑文件时显示行号
  7. Paper再现:MD+AI自动编码机探测蛋白变构(一):文章分析
  8. 线性代数 动手学深度学习 pytorch
  9. URL与URI的区别和联系
  10. 小米手机计算机连接设置方法,小米手机怎么连接电脑并上网?小米手机USB共享上网方法详细图解...
  11. word 参考文献插入整理
  12. 关于收发邮件中的一些概念解释(收件人 抄送人 密送人 回复 回复全部)
  13. Java-Mail Java程序发送Email
  14. 树的搜索问题1(深度优先、广度优先,爬山法和best-first)
  15. Java实现表格打印翻页_简单又实用的小文章来了----表格分页打印的那些小事(2)...
  16. 怎么在计算机中搜索可移动硬盘,电脑如何识别移动硬盘
  17. Vue动态组件、组件缓存、组件激活和非激活、组件插槽、组件name
  18. Nginx获取真实用户IP
  19. 用Java写一个五子棋小游戏
  20. 组战队,赢iPhone啦!

热门文章

  1. VB 6.0中如何访问EXCEL 2007及EXCEL 2010
  2. ccna设备的NAT地址转换
  3. Ajax Tutorials
  4. VB.NET实现DirectSound9 (6) 声音特效
  5. 约瑟夫环 单向循环链表实现
  6. JQuery 实现 锚点跳转
  7. C# 使用FileSystemWatcher来监视文件系统的变化
  8. linux下查看进程占用端口和端口占用进程命令
  9. ASP.NET动态的修改主题
  10. 函数、返回-Sql Server常用函数之统计、算数、字符串函数-by小雨