poj 2528 线段树 离散化()
来源:互联网 发布:郫都区人民政府 知乎 编辑:程序博客网 时间:2024/06/09 22:02
#include<cstdio>#include<cstring>#include<algorithm>#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define MAX_N 20001using namespace std;int L[MAX_N],R[MAX_N],d[MAX_N<<3],t[MAX_N<<3];int ans; int flag;void update1(int a,int b,int l,int r,int rt){if(a>r||b<l)return ;if(a<=l&&r<=b){if(t[rt])flag=1;t[rt]=0;return ; }if(t[rt]==0){t[rt<<1]=t[rt<<1|1]=0;}int m=(l+r)>>1;update1(a,b,lson);update1(a,b,rson);if(t[rt<<1]||t[rt<<1|1])t[rt]=1;elset[rt]=0;} int main(){int T,n,tot,cnt;scanf("%d",&T);while(T--){ans=0;scanf("%d",&n);tot=0;for(int i=0;i<MAX_N<<3;i++)t[i]=1;for(int i=0;i<n;i++){scanf("%d%d",&L[i],&R[i]);d[tot++]=L[i];d[tot++]=R[i];}sort(d,d+tot);cnt=1;for(int i=1;i<tot;i++){if(d[i]!=d[i-1])d[cnt++]=d[i];}int tem=cnt;for(int i=1;i<tem;i++){if(d[i]-d[i-1]>1)d[cnt++]=d[i-1]+1;}sort(d,d+cnt);for(int i=n-1;i>=0;i--){int l=lower_bound(d,d+cnt,L[i])-d;int r=lower_bound(d,d+cnt,R[i])-d;flag=0;update1(l,r,0,cnt-1,1);if(flag)ans++;}printf("%d\n",ans);}}
0 0
- poj 2528 线段树+离散化
- POJ 2528 (线段树+离散化)
- poj 2528 (线段树+离散化)
- poj~2528~离散化线段树
- POJ 2528 线段树+离散化
- Poj 2528 线段树+离散化
- 线段树 poj 2528 离散化处理
- poj 2528 线段树 离散化
- POJ 2528 离散化+线段树染色
- poj 2528 坐标离散化+线段树
- POJ 2528 (线段树 离散化)
- POJ 2528 线段树+离散化
- POJ 2528 QAQ线段树+离散化
- poj 2528--经典线段树+离散化
- poj 2528 离散化+线段树
- POJ 2528 线段树+离散化~
- poj-2528(线段树+离散化)
- poj 2528 线段树离散化
- Ubuntu的i启动器消失不见了
- Impala与Hive的比较
- 编程之美-2.14 求数组的子数组之和的最大值
- bzoj 1180 LCT
- 欢迎使用CSDN-markdown编辑器
- poj 2528 线段树 离散化()
- 【二】数据结构之List
- 时间日期格式转换
- 二叉树的镜像
- 基于QT的五子棋音乐部分功能
- sql语句
- 【Question】I/O函数
- GCD队列绑定NSObject类型上下文数据-利用__bridge_retained(transfer)转移内存管理权
- Http请求