题目链接: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 ;
}

[HIHO1079]离散化(线段树、染色)的更多相关文章

  1. 南阳理工 题目9:posters(离散化+线段树)

    posters 时间限制:1000 ms  |  内存限制:65535 KB 难度:6   描述 The citizens of Bytetown, AB, could not stand that ...

  2. SGU 180 Inversions(离散化 + 线段树求逆序对)

    题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=180 解题报告:一个裸的求逆序对的题,离散化+线段树,也可以用离散化+树状数组.因为 ...

  3. 【POJ】2528 Mayor's posters ——离散化+线段树

    Mayor's posters Time Limit: 1000MS    Memory Limit: 65536K   Description The citizens of Bytetown, A ...

  4. hpu校赛--雪人的高度(离散化线段树)

    1721: 感恩节KK专场——雪人的高度 时间限制: 1 Sec  内存限制: 128 MB 提交: 81  解决: 35 [提交][状态][讨论版] 题目描述 大雪过后,KK决定在春秋大道的某些区间 ...

  5. ZOJ - 1610 经典线段树染色问题

    这个是一个经典线段树染色问题,不过题目给的是左右左右坐标,即[0,3]包含0-1这一段 1-2这一段 2-3这一段,和传统的染色不太一样,不过其实也不用太着急. 我们把左边的坐标+1,即可,那么[0, ...

  6. 【BZOJ1645】[Usaco2007 Open]City Horizon 城市地平线 离散化+线段树

    [BZOJ1645][Usaco2007 Open]City Horizon 城市地平线 Description Farmer John has taken his cows on a trip to ...

  7. 【bzoj4636】蒟蒻的数列 离散化+线段树

    原文地址:http://www.cnblogs.com/GXZlegend/p/6801379.html 题目描述 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个 ...

  8. 离散化+线段树/二分查找/尺取法 HDOJ 4325 Flowers

    题目传送门 题意:给出一些花开花落的时间,问某个时间花开的有几朵 分析:这题有好几种做法,正解应该是离散化坐标后用线段树成端更新和单点询问.还有排序后二分查找询问点之前总花开数和总花凋谢数,作差是当前 ...

  9. Mayor's posters (离散化线段树+对lazy的理解)

    题目 题意: n(n<=10000) 个人依次贴海报,给出每张海报所贴的范围 li,ri(1<=li<=ri<=10000000) .求出最后还能看见多少张海报. 思路: 由于 ...

  10. 干物妹小埋 (离散化 + 线段树 + DP)

    链接:https://ac.nowcoder.com/acm/contest/992/B来源:牛客网 题目描述 在之前很火的一个动漫<干物妹小埋>中,大家对小埋打游戏喝可乐的印象十分的深刻 ...

随机推荐

  1. HSV色彩空间

    HSV是把H(色相),S(饱和度),V(亮度)当做色值来定位颜色的空间.色相的取值范围是0~360度,用来表示颜色的类别.其中红色是0度,绿色是120度,蓝色是240度.饱和度的取值范围是0%~100 ...

  2. IOS第15天(1,事件处理View的拖拽)

    *******view 一些方法 #import "HMView.h" @implementation HMView // 一个完整的触摸过程 // touchesBegan -& ...

  3. 【转】在sqlserver下增加MYSQL的链接服务器,实现分布式数据库开发第一步

    首先要在SQLserver上服务器上这装ODBC对mysql的支持,我下载了mysql-connector-odbc-5.1.5-win32.rar,安装后在ODBC中有了DRIVER={MySQL ...

  4. Vim配置文件备忘

    "我的配置 """""""""其他"""""&qu ...

  5. FastDFS connect timed out

    java.net.SocketTimeoutException: connect timed outUpload file "1003.png"fails:connect time ...

  6. apache查看工作模式及调优

    一,查看工作模式 /usr/sbin/httpd -l Compiled in modules:  core.c  prefork.c  http_core.c  mod_so.c 如果出现prefo ...

  7. 【No.5 Ionic】修改 应用名,icon,启动界面

    修改 应用名 直接 修改 config.xml中的name 修改icon 和 启动界面 在resources目录有个 icon.png  和 splash.png 文件,直接把文件覆盖执行重新生成命令 ...

  8. Multi-level Multi-select plugin

    Property file: Country[tab]City United States[tab]San Francisco United States[tab]Chicago Mexico[tab ...

  9. Java集合---HashMap源码剖析

    一.HashMap概述二.HashMap的数据结构三.HashMap源码分析     1.关键属性     2.构造方法     3.存储数据     4.调整大小 5.数据读取           ...

  10. __weak

    需要使用弱引用的 三种情况: 1. 如果这个block不被持有,那么你完全没有必要使用__weak 2. 如果被持有了,那么__weak是必然的 3. 如果在多线程并发的情况下,不仅要使用__weak ...