poj2528(线段树区间染色)
来源:互联网 发布:sqlserver增量备份 编辑:程序博客网 时间:2024/05/22 04:40
链接:点击打开链接
题意:给出n张海报,问最后能看到几张海报,具体看图
代码:
#include <vector>#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;const int siz=50005;int n,x[siz],y[siz],vis[siz],col[siz],tree[siz<<2];void pushdown(int rt){ if(tree[rt]){ tree[rt<<1]=tree[rt]; tree[rt<<1|1]=tree[rt]; tree[rt]=0; }}void Change(int L,int R,int p,int l,int r,int rt){ if(L<=l&&r<=R){ tree[rt]=p; return; } pushdown(rt); int m=(l+r)>>1; if(L<=m) Change(L,R,p,l,m,rt<<1); if(R>m) Change(L,R,p,m+1,r,rt<<1|1);}void query(int l,int r,int rt){ if(l==r){ if(tree[rt]) vis[tree[rt]]=1; return; //只查询叶子节点 } pushdown(rt); int m=(l+r)>>1; query(l,m,rt<<1); query(m+1,r,rt<<1|1);} //其实就是一个不回溯的线段树int comprass(int op){ int i,tmp; sort(col,col+op); tmp=op; for(i=1;i<tmp;i++){ if(col[i]-col[i-1]>1) col[op++]=(col[i]-1); } sort(col,col+op); tmp=unique(col,col+op)-col; for(i=1;i<=n;i++){ x[i]=lower_bound(col,col+tmp,x[i])-col+1; y[i]=lower_bound(col,col+tmp,y[i])-col+1; } return tmp;}int main(){ int t,i,j,op,ans; scanf("%d",&t); while(t--){ memset(col,0,sizeof(col)); memset(vis,0,sizeof(vis)); memset(tree,0,sizeof(tree)); scanf("%d",&n); op=0; for(i=1;i<=n;i++){ //直接离散化后区间覆盖 scanf("%d%d",&x[i],&y[i]); //离散化要注意之前不相邻的元素,离散化后也 col[op++]=x[i]; //能相邻 col[op++]=y[i]; } op=comprass(op); for(i=1;i<=n;i++) Change(x[i],y[i],i,1,op,1); query(1,op,1); ans=0; for(i=1;i<=n;i++) if(vis[i]) ans++; printf("%d\n",ans); } return 0;}
阅读全文
0 0
- poj2528(线段树区间染色)
- poj2528&&zoj1610 线段树区间染色问题
- poj2528(线段树区间染色+离散化)
- poj2528 线段树 区间更新+染色+离散化
- POJ2528【线段树经典染色。】
- 线段树区间更新+poj2528
- POJ2528 线段树区间覆盖
- poj2528(线段树离散染色)
- poj2528(线段树区间更新)
- poj2528 离散化+线段树区间更新
- POJ2528 线段树 区间更新 离散化
- poj1436(线段树区间染色)
- POJ2528 Mayor's posters(线段树+离散化+染色)
- hdu1698(线段树染色区间求和)
- ZOJ 1610 线段树区间染色
- poj 2777 线段树(区间染色)
- BZOJ 8843 染色 [树链剖分+区间线段树]
- poj 2777(线段树+区间染色)
- 手把手教你Android手机与BLE终端通信--搜索
- 用quartz进行定时任务的开发
- 系统监控工具
- 在进行C#编程时候,有的时候我们需要判断一个字符串是否是数字字符串,我们可以通过以下两种方法来实现。 【方法一】:使用 try{} catch{} 语句。 我们可以在try语句块中试图
- 第 8 章 查找
- poj2528(线段树区间染色)
- 学习 视频压缩:I帧、P帧、B帧
- iOS 开发技巧之 ---- 使用Mac上的Safari对UIWebView进行调试
- HTML5新增属性介绍和地理位置
- hdu 2514
- web项目 调用外部接口 例子
- ELK+Kafka 企业日志收集平台(一)
- 学做人学做事
- HDU