线段树版的海报

实际上这个与普通的线段树相差不大,只是貌似数据太水,暴力都可以过啊

本来以为要离散的,结果没打就A了

    #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int Max=40000001;
struct Node{
int x,y,id;
}node[10001];
int n,m,sum[Max],lazy[Max],tot[1001];
void pushdown(int o,int len){//pushdown:对于lazy标记的一个下传
if(lazy[o]){
int left=o<<1,right=left+1;
lazy[right]=lazy[left]=lazy[o];
sum[left]=lazy[o];
sum[right]=lazy[o];
lazy[o]=0;
}
}
void update(int o,int l,int r,int x,int y,int v){//一个上传操作
if(x<=l and r<=y){
sum[o]=lazy[o]=v;//sum[i]表示i这个节点当前的颜色
return;
}
pushdown(o,r-l+1);
int mid=(l+r)>>1,left=o<<1,right=left+1;
if(x<=mid)update(left,l,mid,x,y,v);
if(y>mid)update(right,mid+1,r,x,y,v);
}
void query(int o,int l,int r,int x,int y){//统计各个颜色都有多少个是外露的
if(!(l^r)){
tot[sum[o]]++;//即sum[o]这个节点的颜色的tot+1,tot[i]表示i这个颜色外露的个数
return;
}
int mid=(l+r)>>1,left=o<<1,right=left+1;
pushdown(o,r-l+1);
if(x<=mid)query(left,l,mid,x,y);
if(mid+1<=y)query(right,mid+1,r,x,y);
}
int main(){
int maxn=-1,ans=0;
scanf("%d%d",&m,&n);
for(register int i=1;i<=n;i++){
scanf("%d%d",&node[i].x,&node[i].y);
maxn=max(node[i].y,maxn);
node[i].id=i;
}
for(register int i=1;i<=n;i++){
update(1,1,maxn,node[i].x,node[i].y,node[i].id);
}
query(1,1,maxn,1,maxn);//统计答案
for(register int i=1;i<=n;i++){
if(tot[i])ans++;
}
printf("%d\n",ans);
return 0;
}

Luogu P3740 [HAOI2014] 贴海报 线段树的更多相关文章

  1. BZOJ 5168 && Luogu P3740 [HAOI2014]贴海报 线段树~~

    据说某谷数据十分水...但幸好BZOJ上也过了...话说我记得讲课时讲的是奇奇怪怪的离散化..但现在突然觉得什么都可以线段树瞎搞了...QAQ 直接就是这个区间有没有被覆盖,被覆盖直接return: ...

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

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

  3. Luogu P3740 [HAOI2014]贴海报_线段树

    线段树版的海报 实际上这个与普通的线段树相差不大,只是貌似数据太水,暴力都可以过啊 本来以为要离散的,结果没打就A了 #include<iostream> #include<cstd ...

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

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

  5. luogu P2574 XOR的艺术 (线段树)

    luogu P2574 XOR的艺术 (线段树) 算是比较简单的线段树. 当区间修改时.\(1 xor 1 = 0,0 xor 1 = 1\)所以就是区间元素个数减去以前的\(1\)的个数就是现在\( ...

  6. 【原创】洛谷 LUOGU P3373 【模板】线段树2

    P3373 [模板]线段树 2 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.将某区间每一个数乘上x 3.求出某区间每一个数的和 输入输出格式 输入格式: 第 ...

  7. 【原创】洛谷 LUOGU P3372 【模板】线段树1

    P3372 [模板]线段树 1 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别 ...

  8. 洛谷P3740 [HAOI2014]贴海报

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

  9. 洛谷 P3740 [HAOI2014]贴海报

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

随机推荐

  1. 57.部门职位管理 ExtJs 展示

    1.jobInfo.jsp <%@ page language="java" pageEncoding="UTF-8"%> <script t ...

  2. Weblogic 启动慢解决方法

      添加 启动参数  :      -Xms256m -Xmx512m -XX:MaxPermSize=256m 原因 : 实际是JVM在Linux下的bug:他想调用一个随机函数,但是取不到. 暂时 ...

  3. E20170629-hm

    enqueue  [计] 入队,排队; dequeue  [计]  出列; rear  n. 后部,背面,背后; 臀部; (舰队或军队的) 后方,后尾,殿后部队; 〈英口〉厕所; ring buffe ...

  4. 用JavaScript实现歌词滚动播放

    各种音乐播放器上都有一个自动滚动播放歌词的功能,那么这个功能用JavaScript怎么实现呢?请看下文. 一般音乐播放器使用的歌词格式都是lrc,为了方便处理,我们这里使用XML格式的歌词.介绍一个网 ...

  5. Dockerfile镜像的制作

    Dockerfile镜像的制作 如果学习Docker,那么制作镜像这一步肯定不能少的,别人给你的是环境,而你自己做的才是你最终需要的东西,接下来就记录一下如何制作一个满足自己的镜像,我们使用docke ...

  6. $P2935 [USACO09JAN]最好的地方Best Spot$

    P2935 [USACO09JAN]最好的地方Best Spot Floyd的水题(黄题) 海星. 这可能是我第一道发的Floyd的博客 inline void Floyd(){ ;k<=n;k ...

  7. python django简单操作

    准备: pip3 install  django==1.10.3 cmd django-admin startproject  guest  创建一个guest的项目 cd guest manage. ...

  8. BZOJ 2178 Simpson积分

    思路: 我发现能用Simpson积分水的题  好像都是裸题诶233333 //By SiriusRen #include <bits/stdc++.h> using namespace s ...

  9. IOS开发之Swift学习笔记

    1.因为存储属性要求初始化,我们可以使用lazy修饰符来延迟初始化.

  10. eclipse 安装svn插件记录

    每个人都有自己喜欢的和习惯的一套开发环境,其中对于喜欢用eclipse的同学来说.subclipse插件可以说是必不可少的插件了. 他的安装有两种方法,一种是在线安装.然而这种安装实在是太慢了,无法忍 ...