P3740 [HAOI2014]贴海报
题目描述
Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论。为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙。
张贴规则如下:
electoral墙是一个长度为N个单位的长方形,每个单位记为一个格子;
所有张贴的海报的高度必须与electoral墙的高度一致的;
每张海报以“A B”表示,即从第A个格子到第B个格子张贴海报;
后贴的海报可以覆盖前面已贴的海报或部分海报。
现在请你判断,张贴完所有海报后,在electoral墙上还可以看见多少张海报。
输入输出格式
输入格式:
第一行: N M 分别表示electoral墙的长度和海报个数
接下来M行: Ai Bi 表示每张海报张贴的位置
输出格式:
输出贴完所有海报后,在electoral墙上还可以看见的海报数。
代码
线段树模版题,求区间覆盖问题,注意从后往前枚举区间
核心在于pushup操作回溯
vis[rt]=vis[lson]&&vis[rson]
#include<bits/stdc++.h>
#define lson rt<<1
#define rson rt<<1|1
using namespace std;
const int maxn=+,maxm=+;
bool vis[maxn<<];
int n,m;
int l[maxm],r[maxm];
int ans=;
bool flag;
inline int read()
{
int x=,f=;char ch=getchar();
while(ch>''||ch<''){if(ch=='-')f=-;ch=getchar();}
while(ch<=''&&ch>=''){x=(x<<)+(x<<)+ch-'';ch=getchar();}
return x*f;
}
void pushup(int rt)
{
vis[rt]=vis[lson]&&vis[rson];
}
void update(int L,int R,int l,int r,int rt)
{
if(vis[rt])return;
if(L<=l&&r<=R)
{
vis[rt]=;
flag=;
return;
}
int m=(l+r)>>;
if(L<=m)
update(L,R,l,m,lson);
if(m<R)
update(L,R,m+,r,rson);
pushup(rt);
}
int main()
{
n=read(),m=read();
for(int i=;i<=m;i++)
l[i]=read(),r[i]=read();
for(int i=m;i>=;i--)
{
flag=;
update(l[i],r[i],,n,);
if(flag)ans++;
}
printf("%d",ans);
return ;
}
P3740 [HAOI2014]贴海报的更多相关文章
- 【题解】Luogu P3740 [HAOI2014]贴海报
woc,今天已经是day -1了 再写一颗珂朵莉树来++rp吧 否则就要AFO了qaq 这有可能是我最后一篇题解/博客qaq 原题传送门:P3740 [HAOI2014]贴海报 考前刷水题到底是对还是 ...
- Luogu P3740 [HAOI2014]贴海报_线段树
线段树版的海报 实际上这个与普通的线段树相差不大,只是貌似数据太水,暴力都可以过啊 本来以为要离散的,结果没打就A了 #include<iostream> #include<cstd ...
- 洛谷P3740 [HAOI2014]贴海报
题目描述 Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙. 张贴规则如下: electo ...
- 洛谷 P3740 [HAOI2014]贴海报
题目描述 Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙. 张贴规则如下: electo ...
- Luogu P3740 [HAOI2014] 贴海报 线段树
线段树版的海报 实际上这个与普通的线段树相差不大,只是貌似数据太水,暴力都可以过啊 本来以为要离散的,结果没打就A了 #include<iostream> #include<cstd ...
- 【文文殿下】P3740 [HAOI2014]贴海报
题解 一开始想到离散化,然后暴力模拟.但是存在一种hack数据: [5,7] [1,5] [7,9] 这样会错误的认为第一个区间被覆盖了(因为两个端点被覆盖).所以我们设置一个玄学调参系数,在一个区间 ...
- BZOJ 5168 && Luogu P3740 [HAOI2014]贴海报 线段树~~
据说某谷数据十分水...但幸好BZOJ上也过了...话说我记得讲课时讲的是奇奇怪怪的离散化..但现在突然觉得什么都可以线段树瞎搞了...QAQ 直接就是这个区间有没有被覆盖,被覆盖直接return: ...
- 1682. [HAOI2014]贴海报
1682. [HAOI2014]贴海报 ★★☆ 输入文件:ha14d.in 输出文件:ha14d.out 简单对比 时间限制:1 s 内存限制:256 MB [题目描述] Byteto ...
- cogs1682. [HAOI2014]贴海报 x
1682. [HAOI2014]贴海报 ★★☆ 输入文件:ha14d.in 输出文件:ha14d.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述] Bytetow ...
随机推荐
- 微信小程序点击保存图片到相册
wxml部分的代码 <view class="footer-r" bindtap="save"> <image src="../ ...
- 一些关于C#发送邮件的代码
1.命名空间 using System.Net.Mail; 2.创建一个MailMessage类的对象 MailMessage mail = new MailMessage(); MailMessag ...
- Maya2017下载安装与激活
目录 1. 更多推荐 2. 下载地址 2.1. OneDrive 2.2. 百度云 3. 安装激活步骤 1. 更多推荐 其他Maya版本的下载与激活:https://www.cnblogs.com/c ...
- HTTP post get request 时遇到特殊字符 ! @ # $ % ^ & * ( )
HTTP post get request 时遇到特殊字符 ! @ # $ % ^ & * ( ) 使用对应的编码替代 例如: curl ftp://username:pass@word@ex ...
- tpcc-mysql测试mysql5.6 (xfs文件系统)
操作系统版本:CentOS release 6.5 (Final) 2.6.32-431.el6.x86_64 #1 内存:32G CPU:Intel(R) Xeon(R) CPU E5-2450 ...
- prototype的用法
定义: prototype 属性使您有能力向对象添加属性和方法. 语法: object.prototype.name=value 实例: function prot(){ this.name = 'J ...
- springboot+thymeleaf 访问静态资源解决(static)
---------------------------------------2.1.3-------------------------------------------------------- ...
- Linux find过滤掉没有查看权限的文件
参考:https://blog.csdn.net/sinat_39416814/article/details/84993424 https://www.jianshu.com/p/2b056e1c0 ...
- FastDFS整合nginx(三)
一 安装 百度云:所有附件的地址 unzip fastdfs-nginx-module-master.zip [root@node02 mnt]# cd fastdfs-nginx-module-ma ...
- qt qsplashscreen 启动画面 延时
intdelayTime=3; QElapsedTimer timer; timer.start(); while(timer.elapsed()<(delayTime*1000)) { app ...