离散化+线段树。
数组开的不够大,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. sybase SA密码重置

    sa 密码忘记解决之道: su - sybase cd ASE/install vi RUN_etoh2 在文件的末尾加入 -psa \ 停止原数据库服务 由于密码遗忘,所以只能通过kill进程停止服 ...

  2. JavaScript 是世界上最好的语言?

    2016年1月中旬,Stack Overflow发起本年度的开发者调查,调查结果于近日公布.本文盘点 JS 开发者应该会关心的部分数据. Stack Overflow 技术排行榜: 在2015年6月, ...

  3. Linux安装QQ 2017

    网上有很多wineQQ,是基于2012或者2013做的,然而当安装好后登录他会提示版本过来,我在优麒麟的应用商店里找到了一个基于国际版QQ的Wine版本,这里说下安装过程. 先上两张成果图: 下载地址 ...

  4. div a块状布局

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. [XML] Resource帮助类

    点击下载 Resources.rar /// <summary> /// 类说明:Resources /// 编 码 人:苏飞 /// 联系方式:361983679 /// 更新网站:[u ...

  6. js - SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data jquery-1.9.1.min.js:3:4315

    FF中时不时报这个错, 就近段做项目来看,  一般是我通过 jquery获取form中的参数(或直接获取参数,并通过ajax进行异步请求的时候,如果有错,就抱该错误! 而对应的, 如果在 Google ...

  7. 【STL】string 常用函数

    string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造 ...

  8. MyEclipse激活失败,解决办法

    文章参考:http://www.cnblogs.com/dingyuanxin/p/4046356.html 失败可能是:systemid和exe破解出来的那个对应不上: 1.启动MyEclipse, ...

  9. MvvmCross[翻译] 使用Xamarin与MvvmCross完成一个跨平台App

    总览 原文:https://github.com/MvvmCross/MvvmCross/wiki/Tip-Calc-A-first-app 我们所做的第一个Model-View-ViewModel( ...

  10. quick-x 计时器的写法

    local scheduler = require("framework.scheduler") --计时器 function MainScene:recoderTime() pr ...