[HIHO1079]离散化(线段树、染色)
2024-10-18 10:52:13
题目链接: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 ;
}
最新文章
- 没有我的A协
- 部署.NET开发环境
- Python 2x ->; 3.x
- Python忽略warning警告错误
- firstchild.data与childNodes[0].nodeValue意思(转)
- Android Service 与 Thread 的区别
- Mac下Android Studio中获取SHA1和MD5
- MySQL为数据表的指定字段插入数据
- 用nodejs删除mongodb中ObjectId类型数据
- ASP.NET 之 网页快照 (DrawToBitmap)
- 2016";百度之星"; - 资格赛(Astar Round1) 1001
- 第二十次codeforces竞技结束 #276 Div 2
- 【洛谷1131】【ZJOI2007】时态同步
- 简单操作django中session和cookie
- LoadRunner Vuser测试脚本添加前置条件举例
- canvas粒子背景
- android studio设置窗口颜色和字体
- 给 Chrome浏览器 添加 Javascript小书签,查看当前页面全部加载的javascript文件及代码片段
- 关于MVC开发时,无法找到area的问题记录
- Ubuntu Java7 SDK环境变量配置(转)
热门文章
- HDU 5919 Sequence II(主席树+逆序思想)
- Solved Unable to copy the source file ./installer/services.sh to the destination file /etc/vmware-t
- 安装SSD固态硬盘
- KVC浅析和实例
- PHP环境下Memcache的使用方法
- iOS开发UI篇—Modal简单介绍
- 多进程、协程、事件驱动及select poll epoll
- windows2003服务器mysql每天定时备份
- jquery的toFixed方法的正确使用
- Spring+Mybatis+SpringMVC+Maven+MySql搭建实例