题目链接:http://hihocoder.com/problemset/problem/1079

MD坑爹,线段查询的时候左闭右开。插完挨个点找一遍扔set里,注意没染色的情况。

 #include <bits/stdc++.h>
using namespace std; #define lson l, m, rt << 1
#define rson m + 1, r, rt << 1 | 1
const int maxn = ;
int sum[maxn<<]; void pushDOWN(int rt) {
if(sum[rt] != -) {
sum[rt<<] = sum[rt<<|] = sum[rt];
sum[rt] = -;
}
} void update(int L, int R, int c, int l, int r, int rt) {
if(L <= l && r <= R) {
sum[rt] = c;
return;
}
pushDOWN(rt);
int m = (l + r) >> ;
if(L <= m) update(L, R, c, lson);
if(R > m) update(L, R, c, rson);
} int query(int p, int l, int r, int rt) {
if(l == r) return sum[rt];
pushDOWN(rt);
int m = (l + r) >> ;
if(p <= m) return query(p, lson);
else return query(p, rson);
} int h[maxn], hcnt;
int n, m;
int lo[maxn], hi[maxn]; int id(int x) {
return lower_bound(h, h+hcnt, x) - h + ;
} int main() {
// freopen("in", "r", stdin);
while(~scanf("%d%d",&n,&m)) {
hcnt = ;
memset(sum, -, sizeof(sum));
for(int i = ; i < n; i++) {
scanf("%d%d",&lo[i], &hi[i]);
h[hcnt++] = lo[i], h[hcnt++] = hi[i];
}
sort(h, h+hcnt); hcnt = unique(h, h+hcnt) - h;
m = hcnt;
for(int i = ; i < n; i++) {
update(id(lo[i]), id(hi[i])-, i, , m, );
}
set<int> s;
s.insert(-);
for(int i = ; i <= m; i++) {
s.insert(query(i, , m, ));
// printf("%d ", query(i, 1, m, 1));
}
// printf("\n");
printf("%d\n", s.size()-);
}
return ;
}

最新文章

  1. 没有我的A协
  2. 部署.NET开发环境
  3. Python 2x -&gt; 3.x
  4. Python忽略warning警告错误
  5. firstchild.data与childNodes[0].nodeValue意思(转)
  6. Android Service 与 Thread 的区别
  7. Mac下Android Studio中获取SHA1和MD5
  8. MySQL为数据表的指定字段插入数据
  9. 用nodejs删除mongodb中ObjectId类型数据
  10. ASP.NET 之 网页快照 (DrawToBitmap)
  11. 2016&quot;百度之星&quot; - 资格赛(Astar Round1) 1001
  12. 第二十次codeforces竞技结束 #276 Div 2
  13. 【洛谷1131】【ZJOI2007】时态同步
  14. 简单操作django中session和cookie
  15. LoadRunner Vuser测试脚本添加前置条件举例
  16. canvas粒子背景
  17. android studio设置窗口颜色和字体
  18. 给 Chrome浏览器 添加 Javascript小书签,查看当前页面全部加载的javascript文件及代码片段
  19. 关于MVC开发时,无法找到area的问题记录
  20. Ubuntu Java7 SDK环境变量配置(转)

热门文章

  1. HDU 5919 Sequence II(主席树+逆序思想)
  2. Solved Unable to copy the source file ./installer/services.sh to the destination file /etc/vmware-t
  3. 安装SSD固态硬盘
  4. KVC浅析和实例
  5. PHP环境下Memcache的使用方法
  6. iOS开发UI篇—Modal简单介绍
  7. 多进程、协程、事件驱动及select poll epoll
  8. windows2003服务器mysql每天定时备份
  9. jquery的toFixed方法的正确使用
  10. Spring+Mybatis+SpringMVC+Maven+MySql搭建实例