[haoi2014]贴海报
Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论。为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙。
张贴规则如下:
1.electoral墙是一个长度为N个单位的长方形,每个单位记为一个格子;
2.所有张贴的海报的高度必须与electoral墙的高度一致的;
3.每张海报以“A B”表示,即从第A个格子到第B个格子张贴海报;
4.后贴的海报可以覆盖前面已贴的海报或部分海报。
现在请你判断,张贴完所有海报后,在electoral墙上还可以看见多少张海报。
1 0<= N <= 10000000 1<=M<=1000 1<= Ai <= Bi <=10000000
所有的数据都是整数。数据之间有一个空格
题解:离散;
可能会出现这样的情况,两个相邻的线段正好覆盖住了一条线段的两端,且这条线段的两端离散后处于相邻的位置,就会出现中间的地方还有没被覆盖的点,但计算的时候无法算进去了;
对于这种情况,我采用的方法是用一个t数组,t[i]表示离散后的数组c[i]和c[i+1]之间的空隙的颜色;
如果仅仅上面这样处理还是会挂,我们最后统计答案的时候还需要判断一下c[i]和c[i+1]之间有没有空隙(if(c[i+1]-c[i]==1)continue;)
离散化的题目没怎么做,稍稍一道水题竟然有这么多坑,还不如交个二重循环;
(蛤省众人疯狂吐槽:这题nm就能过!数据水的一B!)
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<ctime>
using namespace std;
#define up(i,j,n) for(int i=j;i<=n;i++)
#define LL long long
#define pii pair<int,int>
#define FILE "dealing"
inline bool chkmin(int &x,int y){return x>y?(x=y,true):false;}
inline bool chkmax(int &x,int y){return x<y?(x=y,true):false;}
namespace IO{
char buf[<<],*fs,*ft;
int gc(){return (fs==ft&&((ft=(fs=buf)+fread(buf,,<<,stdin)),fs==ft))?:*fs++;}
int read(){
int x=,ch=gc(),d=;
while(ch<''||ch>''){if(ch=='-')d=;ch=gc();}
while(ch>=''&&ch<=''){x=(x<<)+(x<<)+ch-'';ch=gc();}
return d?-x:x;
}
}using namespace IO;
namespace OI{
const int maxn();
int x[maxn],y[maxn],n,m,q[maxn<<],tail=;
int b[],f[maxn];
bool B[];
int c[maxn],t[maxn];
int ans=;
void slove(){
m=read(),n=read();
up(i,,n){
x[i]=read(),y[i]=read();
if(!B[x[i]])q[++tail]=x[i],B[x[i]]=;
if(!B[y[i]])q[++tail]=y[i],B[y[i]]=;
}
sort(q+,q+tail+);
for(int i=;i<=tail;i++)b[q[i]]=i;
up(i,,n){
up(j,b[x[i]],b[y[i]])c[j]=i;
up(j,b[x[i]],(b[y[i]]-))t[j]=i;
}
for(int i=;i<=tail;i++)if(!f[c[i]]&&c[i])ans++,f[c[i]]=;
for(int i=;i<tail;i++)if(!f[t[i]]&&t[i]&&q[i+]-q[i]>)ans++,f[t[i]]=;
printf("%d\n",ans);
}
}
int main(){
//freopen(FILE".in","r",stdin);
//freopen(FILE".out","w",stdout);
using namespace OI;
slove();
return ;
}
[haoi2014]贴海报的更多相关文章
- 【题解】Luogu P3740 [HAOI2014]贴海报
woc,今天已经是day -1了 再写一颗珂朵莉树来++rp吧 否则就要AFO了qaq 这有可能是我最后一篇题解/博客qaq 原题传送门:P3740 [HAOI2014]贴海报 考前刷水题到底是对还是 ...
- 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 ...
- Luogu P3740 [HAOI2014]贴海报_线段树
线段树版的海报 实际上这个与普通的线段树相差不大,只是貌似数据太水,暴力都可以过啊 本来以为要离散的,结果没打就A了 #include<iostream> #include<cstd ...
- 洛谷P3740 【[HAOI2014]贴海报】
(呃...本蒟蒻的第一篇题解qwq)..不废话了讲正题..思路来源于铺地毯(-->传送门)..先算出每一个格子上覆盖的海报并把可见的海报做标记然后算出有多少海报是可见的..但是作为省选题怎么可能 ...
- BZOJ5168: [HAOI2014]贴海报 线段树
Description Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委 员 会为选民准备了一个张贴海报的electoral墙.张贴规则如下 ...
- 洛谷P3740 [HAOI2014]贴海报
题目描述 Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙. 张贴规则如下: electo ...
- 【线段树】【P3740】 [HAOI2014]贴海报
传送门 Description Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙. 张贴规 ...
- 洛谷 P3740 [HAOI2014]贴海报
题目描述 Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙. 张贴规则如下: electo ...
随机推荐
- django删除表重建&修改用户密码&base64加密解密字符串&ps aux参数说明&各种Error例子
1.django的queryset不支持负索引 AssertionError: Negative indexing is not supported. 2.django向前端JavaScript传递列 ...
- [BZOJ5286][洛谷P4425][HNOI2018]转盘(线段树)
5286: [Hnoi2018]转盘 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 15 Solved: 11[Submit][Status][Di ...
- BZOJ 2085 [POI2010] Hamsters
题面 Description Tz养了一群仓鼠,他们都有英文小写的名字,现在Tz想用一个字母序列来表示他们的名字,只要他们的名字是字母序列中的一个子串就算,出现多次可以重复计算.现在Tz想好了要出现多 ...
- Ubuntu 16.04安装Wine版的迅雷+QQ(完美方案,终极解决方法)
安装前先备份好系统! 继上一篇安装QQ的方法http://www.cnblogs.com/EasonJim/p/7425978.html,这一篇的QQ采用的是Wine模式安装.完美解决消息记录中文乱码 ...
- 为Jenkins增加ssl(https)的访问支持(Windows/Linux)
前言: 增加ssl(https)的访问可以为部署在公网下的jenkins提供更安全的问题,最明显的好处应该是登录和jenkins-ci.jar的调用. 比如jenkins-ci.jar的调用,一般在w ...
- Myeclipse 出现了Could not generate DH keypair 错误
在myeclipse下安装svn插件,出现了Could not generate DH keypair,这么一个错误. 这个问题困扰了我半天时间,各种百度也找不到答案,或许是百度能力问题吧.百度出来的 ...
- jquery的ajax的success和fail用法
$.ajax({ type:"POST", url: url, contentType: 'application/json;charset=utf-8', data: JSON. ...
- <LeetCode OJ> 204. Count Primes
Description: Count the number of prime numbers less than a non-negative number, n. 分析: 思路首先:一个数不是合数就 ...
- Git安装及SSH Key管理之Mac篇
1.下载git客户端,下载地址为:https://git-scm.com/download/mac 2.打开安装包,可以看到此时的界面为: 我们需要把.pkg的安装包安装到系统当中.我双击了安装包 ...
- TDDL-剖析淘宝TDDL
TDDL-剖析淘宝TDDL 学习了:https://blog.csdn.net/sumj7011/article/details/78286741 Taobao Distribute Data Lay ...