以后做双精题请至少先跑个数据。。。输入都不一样。。。

做法就是离散化大力线段树。

记得在x+1和y-1插点 看这个数据:

1000 12
1 100
50 80
80 99
50 98
1 56
100 200
200 300
300 500
500 600
600 1000
260 560
160 580

输出7(自己yy吧yy不了网上大把题解)

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std; int n,m;
struct query
{
int x,y;
}q[];
int lslen,ls[];
void LSH()
{
lslen=;
for(int i=;i<=m;i++)
{
ls[++lslen]=q[i].x,ls[++lslen]=q[i].y;
if(q[i].x+<q[i].y)
ls[++lslen]=q[i].x+,ls[++lslen]=q[i].y-;
}
ls[++lslen]=n;
sort(ls+,ls+lslen+); lslen=unique(ls+,ls+lslen+)-ls-;
for(int i=;i<=m;i++)
q[i].x=lower_bound(ls+,ls+lslen+,q[i].x)-ls,
q[i].y=lower_bound(ls+,ls+lslen+,q[i].y)-ls;
n=lower_bound(ls+,ls+lslen+,n)-ls;
} struct trnode
{
int l,r,lc,rc,c;
}tr[];int trlen;
void bt(int l,int r)
{
int now=++trlen;
tr[now].l=l;tr[now].r=r;tr[now].c=-;
tr[now].lc=tr[now].rc=-;
if(l<r)
{
int mid=(l+r)/;
tr[now].lc=trlen+;bt(l,mid);
tr[now].rc=trlen+;bt(mid+,r);
}
}
void change(int now,int l,int r,int k)
{
if(tr[now].l==l&&tr[now].r==r){tr[now].c=k;return ;} int mid=(tr[now].l+tr[now].r)/;
int lc=tr[now].lc,rc=tr[now].rc; if(tr[now].c!=-)
{
tr[lc].c=tr[now].c;
tr[rc].c=tr[now].c;
} if(r<=mid) change(lc,l,r,k);
else if(mid+<=l)change(rc,l,r,k);
else change(lc,l,mid,k), change(rc,mid+,r,k); if(tr[lc].c==tr[rc].c)tr[now].c=tr[lc].c;
else tr[now].c=-;
}
bool col[];
void findans(int now,int l,int r)
{
if(tr[now].c!=-){col[tr[now].c]=true;return ;}
if(l==r)return ; int mid=(tr[now].l+tr[now].r)/;
int lc=tr[now].lc,rc=tr[now].rc; if(r<=mid) findans(lc,l,r);
else if(mid+<=l)findans(rc,l,r);
else findans(lc,l,mid),findans(rc,mid+,r);
}
int main()
{
n=1e7;scanf("%d",&m);
for(int i=;i<=m;i++)
{
scanf("%d%d",&q[i].x,&q[i].y);
if(q[i].x>n)i--,m--;
if(q[i].y>n)q[i].y=n;
}
LSH(); trlen=;bt(,n);
for(int i=;i<=m;i++)change(,q[i].x,q[i].y,i); memset(col,false,sizeof(col));
findans(,,n);
int ans=;
for(int i=;i<=m;i++)
if(col[i]==true)ans++;
printf("%d\n",ans);
return ;
}

bzoj5029: 贴小广告&&bzoj5168: [HAOI2014]贴海报的更多相关文章

  1. BZOJ5029: 贴小广告 & BZOJ5168: [HAOI2014]贴海报

    [传送门:BZOJ5029&BZOJ5168] 简要题意: 给出m段区间l[i],r[i],表示l[i]到r[i]的数全部变成i,求出最后有多少种不同的数 题解: 线段树+离散化 这是一道经典 ...

  2. bzoj5029 贴小广告

    Description 现在有一堵墙,墙上分为若干个单元.接下来会来n个人在墙上贴小广告.每次每个人选择墙上连续一段的单元贴上自己公司与众不同的小广告.因为小广告可能会出现被覆盖的情况,由于公司之间存 ...

  3. BZOJ5168: [HAOI2014]贴海报 线段树

    Description Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委 员 会为选民准备了一个张贴海报的electoral墙.张贴规则如下 ...

  4. 从运营商小广告到HTTPS

    相信很多人都试过这样的经历,浏览一个正常的网站时,右下突然角弹出一堆小广告,而且这些广告的内容和你浏览的网站格格不入: 前几天还有某微博用户爆料访问github时居然也有广告: 又或者,你有没有试过因 ...

  5. 【题解】Luogu P3740 [HAOI2014]贴海报

    woc,今天已经是day -1了 再写一颗珂朵莉树来++rp吧 否则就要AFO了qaq 这有可能是我最后一篇题解/博客qaq 原题传送门:P3740 [HAOI2014]贴海报 考前刷水题到底是对还是 ...

  6. 1682. [HAOI2014]贴海报

    1682. [HAOI2014]贴海报 ★★☆   输入文件:ha14d.in   输出文件:ha14d.out   简单对比 时间限制:1 s   内存限制:256 MB [题目描述] Byteto ...

  7. PJzhang:关闭wps小广告和快速关闭445端口

    猫宁!!! ​​   kali linux上安装的wps,没有广告,而且轻巧简洁.   如果你在windows上安装wps,除了ppt.word.excel,还会有一个h5的应用,当然,最令人烦扰的当 ...

  8. cogs1682. [HAOI2014]贴海报 x

    1682. [HAOI2014]贴海报 ★★☆   输入文件:ha14d.in   输出文件:ha14d.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] Bytetow ...

  9. 淘宝小广告的鼠标移上实现html, JavaScript代码

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

随机推荐

  1. Get 和 Post

    理论: Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而 ...

  2. 通过ASP.NET Ajax技术模拟实现NBA比赛文字直播功能

    文字直播是满足一些观看视频直播而条件不足的球迷所设定的比赛直播方式,例如在长途车上为了能够了解比赛的实时赛况但又限于流量和网速等问题,就出现了文字直播的方式.无论是拥有无线上网卡的笔记本电脑或者手机等 ...

  3. MAVEN - 生命周期(1)

    三套生命周期:   MAVEN拥有三套互相独立的生命周期,分别是:clean.default和site. clean - 清理项目 default - 构建项目 site - 简历项目站点   这其中 ...

  4. Deutsch lernen (10)

    Dieser Weg Dieser Weg wird kein leichter sein. Dieser Weg wird steinig und schwer. Nicht mit vielen ...

  5. Java多线程中常见的几个问题

    我们都知道,在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口. 1.进程和线程的区别是什么? 进程是执行着的应用程序,而线程是进程内部的一个执行序列. ...

  6. AI:狄拉克之海上的涟漪

    延陵季子2011年  8月27日 19:02   借鉴英文原文:Ripples in the Dirac Sea 当他试着用一种轻松的口吻诉说一些事情时,我会明白,其实我们都明白,在他的心里绝对不是平 ...

  7. Caffe: gflag编译出现问题汇总

    1. 使用Unicode字符集: 出现问题 E:\CodeBase\ML\Caffe\ThirdPartySrc\gflags-master\src\gflags.cc(1340): error C2 ...

  8. PCL:描述三维离散点的ROPS特征(Code)

    前言: 三维点云为三维欧式空间点的集合.对点云的形状描述若使用局部特征,则可分为两种:固定世界坐标系的局部描述和寻找局部主方向的局部描述,ROPS特征为寻找局部主方向的特征描述. 1.寻找主方向(对X ...

  9. What is the difference between PKCS#5 padding and PKCS#7 padding

    The difference between the PKCS#5 and PKCS#7 padding mechanisms is the block size; PKCS#5 padding is ...

  10. cocos ios Label组件问题

    软件:cocos creator v1.9.0 开发的过程中,一直在web上预览,Label组件显示一直没问题.在打包到ios上时,出现问题了: Label组件: 当我们缩小字体,发现没问题了,当我们 ...