Mayor's posters poj2528 线段树
来源:互联网 发布:端口占用解决方法 编辑:程序博客网 时间:2024/06/06 05:11
Description
给定一些区间和这些区间的标号,新的区间会覆盖旧的,求最多看见多少不同的区间
Solution
嗯我也搞不懂为什么要刷水题但是就是刷了
Code
#include <stdio.h>#include <string.h>#include <vector>#include <algorithm>#define rep(i, st, ed) for (int i = st; i <= ed; i += 1)#define fill(x, t) memset(x, t, sizeof(x))#define N 100001struct node{int l, r, c;}t[N * 5 + 1];struct data{int x, index;};int bct[N], q[N];inline int read(){ int x = 0, v = 1; char ch = getchar(); while (ch < '0' || ch > '9'){ if (ch == '-'){ v = -1; } ch = getchar(); } while (ch >= '0' && ch <= '9'){ x = (x << 1) + (x << 3) + ch - '0'; ch = getchar(); } return x * v;}inline void modify(int now, int l, int r, int v){ if (l == t[now].l && r == t[now].r){ t[now].c = v; }else{ if (t[now].c){ t[now * 2].c = t[now * 2 + 1].c = t[now].c; t[now].c = 0; } int mid = (t[now].l + t[now].r) >> 1; if (r <= mid){ modify(now * 2, l, r, v); }else if (l > mid){ modify(now * 2 + 1, l, r, v); }else{ modify(now * 2, l, mid, v); modify(now * 2 + 1, mid + 1, r, v); } }}inline void query(int now){ if (t[now].c){ bct[t[now].c] = 1; }else{ if (t[now].l == t[now].r){ return; } query(now * 2); query(now * 2 + 1); }}inline void build(int now, int l, int r){ t[now] = (node){l, r}; if (l == r){ return; } int mid = (t[now].l + t[now].r) >> 1; build(now * 2, l, mid); build(now * 2 + 1, mid + 1, r);}inline int cmp(data a, data b){ return a.x < b.x;}using std:: vector;int main(void){ int T = read(); while (T --){ vector<data> v; int n = read(); rep(i, 1, n){ int l = read(), r = read(); v.push_back((data){l, i * 2 - 1}); v.push_back((data){r, i * 2}); } std:: sort(v.begin(), v.end(), cmp); int cnt = 1; q[v[0].index] = 1; rep(i, 1, v.size() - 1){ if (v[i].x != v[i - 1].x){ cnt += 1; } q[v[i].index] = cnt; } build(1, 1, v.size()); rep(i, 1, n){ modify(1, q[i * 2 - 1], q[i * 2], i); } fill(bct, 0); query(1); int ans = 0; rep(i, 1, n){ if (bct[i]){ ans += 1; } } printf("%d\n", ans); } return 0;}
1 0
- Poj2528 Mayor's posters (线段树)
- poj2528 Mayor's posters 【线段树】
- POJ2528 Mayor's posters线段树
- POJ2528 Mayor's posters 线段树
- 线段树之POJ2528 Mayor's posters
- Mayor's posters poj2528 线段树
- POJ2528 Mayor's posters(线段树)
- 线段树 poj2528 Mayor's posters
- 【POJ2528】Mayor's posters ||【NYOJ9】 (线段树)
- POJ2528:Mayor's posters(线段树区间更新+离散化)
- poj2528--Mayor's posters(线段树+离散化)
- poj2528 Mayor's posters(线段树+离散化)
- poj2528 Mayor's posters,线段树,离散化
- poj2528 Mayor's posters(线段树,离散化)
- poj2528 Mayor’s posters 线段树+离散化
- Mayor's posters(线段树+离散化POJ2528)
- POJ2528 Mayor's posters 线段树区间更新+离散化
- poj2528 Mayor's posters 线段树+离散化
- 基于机器学习的网络异常流量识别系统——数据篇
- 解决点击tomcat的bin目录下的startup.bat闪退问题
- 百度IFE前端学院2017热身题
- 文本输入框、密码输入框
- mongoDB常用命令和数据库迁移(亲测)
- Mayor's posters poj2528 线段树
- Picasso detected an unsupported OkHttp on the classpath的解决方法
- Linux下 环境变量/etc/profile、/etc/bashrc、~/.bashrc的区别
- regedit.msc
- SQLite存储数据
- scala(6)-数组的初始化以及循环
- 全面理解java异常机制
- java 对带T的美国时间转换方法
- Linux基本命令