【POJ】2528 Mayor's posters
离散化+线段树。
数组开的不够大,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的更多相关文章
- 【POJ】2528 Mayor's posters ——离散化+线段树
Mayor's posters Time Limit: 1000MS Memory Limit: 65536K Description The citizens of Bytetown, A ...
- POJ 2528 Mayor's posters 【区间离散化+线段树区间更新&&查询变形】
任意门:http://poj.org/problem?id=2528 Mayor's posters Time Limit: 1000MS Memory Limit: 65536K Total S ...
- poj 2528 Mayor's posters(线段树+离散化)
/* poj 2528 Mayor's posters 线段树 + 离散化 离散化的理解: 给你一系列的正整数, 例如 1, 4 , 100, 1000000000, 如果利用线段树求解的话,很明显 ...
- poj 2528 Mayor's posters 线段树+离散化技巧
poj 2528 Mayor's posters 题目链接: http://poj.org/problem?id=2528 思路: 线段树+离散化技巧(这里的离散化需要注意一下啊,题目数据弱看不出来) ...
- POJ - 2528 Mayor's posters(dfs+分治)
POJ - 2528 Mayor's posters 思路:分治思想. 代码: #include<iostream> #include<cstdio> #include< ...
- POJ.2528 Mayor's posters (线段树 区间更新 区间查询 离散化)
POJ.2528 Mayor's posters (线段树 区间更新 区间查询 离散化) 题意分析 贴海报,新的海报能覆盖在旧的海报上面,最后贴完了,求问能看见几张海报. 最多有10000张海报,海报 ...
- 【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, ...
- 【POJ】1067 取石子游戏(博弈论)
Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...
- POJ 2528——Mayor's posters——————【线段树区间替换、找存在的不同区间】
Mayor's posters Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Sub ...
随机推荐
- sybase SA密码重置
sa 密码忘记解决之道: su - sybase cd ASE/install vi RUN_etoh2 在文件的末尾加入 -psa \ 停止原数据库服务 由于密码遗忘,所以只能通过kill进程停止服 ...
- JavaScript 是世界上最好的语言?
2016年1月中旬,Stack Overflow发起本年度的开发者调查,调查结果于近日公布.本文盘点 JS 开发者应该会关心的部分数据. Stack Overflow 技术排行榜: 在2015年6月, ...
- Linux安装QQ 2017
网上有很多wineQQ,是基于2012或者2013做的,然而当安装好后登录他会提示版本过来,我在优麒麟的应用商店里找到了一个基于国际版QQ的Wine版本,这里说下安装过程. 先上两张成果图: 下载地址 ...
- div a块状布局
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- [XML] Resource帮助类
点击下载 Resources.rar /// <summary> /// 类说明:Resources /// 编 码 人:苏飞 /// 联系方式:361983679 /// 更新网站:[u ...
- 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 ...
- 【STL】string 常用函数
string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造 ...
- MyEclipse激活失败,解决办法
文章参考:http://www.cnblogs.com/dingyuanxin/p/4046356.html 失败可能是:systemid和exe破解出来的那个对应不上: 1.启动MyEclipse, ...
- MvvmCross[翻译] 使用Xamarin与MvvmCross完成一个跨平台App
总览 原文:https://github.com/MvvmCross/MvvmCross/wiki/Tip-Calc-A-first-app 我们所做的第一个Model-View-ViewModel( ...
- quick-x 计时器的写法
local scheduler = require("framework.scheduler") --计时器 function MainScene:recoderTime() pr ...