离散化+线段树。
数组开的不够大,wa了N多回。

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; #define MAXN 12010
#define lson l, mid, rt<<1
#define rson mid+1, r, rt<<1|1 int ls[MAXN], rs[MAXN];
int nums[MAXN<<];
int buf[MAXN*], cnt;
char set[MAXN]; inline int bin(int x, int n) {
int l = , r = n-;
int mid; while (l <= r) {
mid = (l+r)>>;
if (buf[mid] == x)
return mid;
if (buf[mid] < x)
l = mid+;
else
r = mid-;
} return -;
}
/*
void build(int l, int r, int rt) {
nums[rt] = 0;
if (l == r)
return ;
int mid = (l+r)>>1;
build(lson);
build(rson);
}*/ inline void PushDown(int rt) {
if ( nums[rt] ) {
nums[rt<<] = nums[rt<<|] = nums[rt];
nums[rt] = ;
}
} void update(int ll, int rr, int c, int l, int r, int rt) {
if (ll<=l && rr>=r) {
nums[rt] = c;
return ;
}
PushDown(rt);
int mid = (l+r)>>;
if (ll <= mid)
update(ll, rr, c, lson);
if (rr > mid)
update(ll, rr, c, rson);
} void query(int l, int r, int rt) {
if ( nums[rt] ) {
if ( !set[nums[rt]] )
++cnt;
set[nums[rt]] = ;
return ;
}
if (l == r)
return ;
int mid = (l+r)>>;
query(lson);
query(rson);
} int main() {
int case_n, n, m;
int i, j, ll, rr; scanf("%d", &case_n); while (case_n--) {
scanf("%d", &n);
m = ;
for (i=; i<=n; ++i) {
scanf("%d %d", &ls[i], &rs[i]);
buf[m++] = ls[i];
buf[m++] = rs[i];
}
sort(buf, buf+m);
j = ;
for (i=; i<m; ++i) {
if (buf[i] != buf[i-])
buf[j++] = buf[i];
}
m = j;
for (i=m-; i>; --i) {
if (buf[i] != buf[i-]+)
buf[m++] = buf[i-]+;
}
sort(buf, buf+m);
//build(0, m, 1);
memset(nums, , sizeof(nums));
memset(set, , sizeof(set));
for (i=; i<=n; ++i) {
ll = bin(ls[i], m);
rr = bin(rs[i], m);
update(ll, rr, i, , m, );
}
cnt = ;
query(, m, );
printf("%d\n", cnt);
} return ;
}

【POJ】2528 Mayor's posters的更多相关文章

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

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

  2. POJ 2528 Mayor's posters 【区间离散化+线段树区间更新&&查询变形】

    任意门:http://poj.org/problem?id=2528 Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total S ...

  3. poj 2528 Mayor's posters(线段树+离散化)

    /* poj 2528 Mayor's posters 线段树 + 离散化 离散化的理解: 给你一系列的正整数, 例如 1, 4 , 100, 1000000000, 如果利用线段树求解的话,很明显 ...

  4. poj 2528 Mayor's posters 线段树+离散化技巧

    poj 2528 Mayor's posters 题目链接: http://poj.org/problem?id=2528 思路: 线段树+离散化技巧(这里的离散化需要注意一下啊,题目数据弱看不出来) ...

  5. POJ - 2528 Mayor's posters(dfs+分治)

    POJ - 2528 Mayor's posters 思路:分治思想. 代码: #include<iostream> #include<cstdio> #include< ...

  6. POJ.2528 Mayor's posters (线段树 区间更新 区间查询 离散化)

    POJ.2528 Mayor's posters (线段树 区间更新 区间查询 离散化) 题意分析 贴海报,新的海报能覆盖在旧的海报上面,最后贴完了,求问能看见几张海报. 最多有10000张海报,海报 ...

  7. 【POJ】1704 Georgia and Bob(Staircase Nim)

    Description Georgia and Bob decide to play a self-invented game. They draw a row of grids on paper, ...

  8. 【POJ】1067 取石子游戏(博弈论)

    Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...

  9. POJ 2528——Mayor's posters——————【线段树区间替换、找存在的不同区间】

    Mayor's posters Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Sub ...

随机推荐

  1. mac os 终端提示 you have new mail

    这里的信息可能是由于所做的什么操作触发了发邮件的事件, 系统发送的邮件提醒. 我遇到的原因是由于运行 cron , 由于权限所导致了发邮件的事件提醒. Last login: Tue Apr 26 0 ...

  2. Bash从路径中获取文件名

    #!/bin/bash basename /etc/hosts

  3. UTF-8 BOM对PHP的影响

    今天在用notepad++写代码时 载入一个frameset框架模版后 在页面上一直不显示该页面,查看源码后都正常.然后索性把里面东西全删掉 随便写了几个测试文字可以正常显示. 折腾了好长时间,最后偶 ...

  4. 规划收发你的邮件,使用qq邮箱接收阿里云企业邮邮件

    使用qq邮箱接收阿里企业邮 首先管理员开通企业邮后会发来激活短信 根据短信提示打开https://qiye.aliyun.com企业邮登陆地址 使用短信提供的密码登陆邮箱 首次登陆时会让我们重设密码 ...

  5. Delphi 类方法和普通方法的区别 .

    //类声明  TMyClass = class  public    class procedure MyProc;  //类方式    constructor Create;      //Crea ...

  6. Struts2单文件上传

    第一步:首先写个上传文件的页面(简单的一个form表单) <html> <head> <meta http-equiv="Content-Type" ...

  7. Lucene 排序 Sort与SortField

    在sql语句中,有升序和降序排列.在Lucene中,同样也有. Sort里的属性 SortField里的属性 含义 Sort.INDEXORDER SortField.FIELD_DOC 按照索引的顺 ...

  8. Codevs 2549 自然数和分解

    2549 自然数和分解 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver 传送门 题目描述 Description 把自然数N分解为若干个自然数之和,输出方案数. 输 ...

  9. C++的函数重载 转

    ——每个现象后面都隐藏一个本质,关键在于我们是否去挖掘 写在前面: 函数重载的重要性不言而明,但是你知道C++中函数重载是如何实现的呢(虽然本文谈的是C++中函数重载的实现,但我想其它语言也是类似的) ...

  10. 桌面浏览器实现滑动翻页效果(Swiper)

    还是那个号称很炫的B/S展示软件,在液晶屏上展示需要有滑动翻页的效果(在同一页面滑动切换内容,不是切换页面),最后确定使用功能很强大的Swiper类库. 具体优点可参考:http://www.chin ...