Luogu P3740 [HAOI2014] 贴海报 线段树
线段树版的海报
实际上这个与普通的线段树相差不大,只是貌似数据太水,暴力都可以过啊
本来以为要离散的,结果没打就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] 贴海报 线段树的更多相关文章
- BZOJ 5168 && Luogu P3740 [HAOI2014]贴海报 线段树~~
据说某谷数据十分水...但幸好BZOJ上也过了...话说我记得讲课时讲的是奇奇怪怪的离散化..但现在突然觉得什么都可以线段树瞎搞了...QAQ 直接就是这个区间有没有被覆盖,被覆盖直接return: ...
- 【题解】Luogu P3740 [HAOI2014]贴海报
woc,今天已经是day -1了 再写一颗珂朵莉树来++rp吧 否则就要AFO了qaq 这有可能是我最后一篇题解/博客qaq 原题传送门:P3740 [HAOI2014]贴海报 考前刷水题到底是对还是 ...
- Luogu P3740 [HAOI2014]贴海报_线段树
线段树版的海报 实际上这个与普通的线段树相差不大,只是貌似数据太水,暴力都可以过啊 本来以为要离散的,结果没打就A了 #include<iostream> #include<cstd ...
- BZOJ5168: [HAOI2014]贴海报 线段树
Description Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委 员 会为选民准备了一个张贴海报的electoral墙.张贴规则如下 ...
- luogu P2574 XOR的艺术 (线段树)
luogu P2574 XOR的艺术 (线段树) 算是比较简单的线段树. 当区间修改时.\(1 xor 1 = 0,0 xor 1 = 1\)所以就是区间元素个数减去以前的\(1\)的个数就是现在\( ...
- 【原创】洛谷 LUOGU P3373 【模板】线段树2
P3373 [模板]线段树 2 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.将某区间每一个数乘上x 3.求出某区间每一个数的和 输入输出格式 输入格式: 第 ...
- 【原创】洛谷 LUOGU P3372 【模板】线段树1
P3372 [模板]线段树 1 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别 ...
- 洛谷P3740 [HAOI2014]贴海报
题目描述 Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙. 张贴规则如下: electo ...
- 洛谷 P3740 [HAOI2014]贴海报
题目描述 Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙. 张贴规则如下: electo ...
随机推荐
- ES6详解八:模块(Module)!--各种导入导出方法
[-] 基本用法 命名导出named exports 默认导出 命名导出结合默认导出 仅支持静态导入导出 各种导入和导出方式总结 modules是ES6引入的最重要一个特性. 所以以后再写模块,直 ...
- PCB 所建不凡 AWS 技术峰会2018 • 深圳站 2018.9.20
在去[AWS 技术峰会2018 • 深圳站]之提前并没有AWS提前做功课,主要PCB这行业基本自己搭服务器搭应用,不会买云服务器.由于没用过企业级的云服务器,对云这方面还是了解还是非常有限的. 市面上 ...
- 关于swoole 和golang 的压力测试结果
一.环境介绍 linux centos7 php7.1.18 go1.12.1 2核4G内存 二.代码 swoole代码 <?php $http = new swoole_http_server ...
- ACM_梦中的函数
梦中的函数 Time Limit: 2000/1000ms (Java/Others) Problem Description: 寒假那段时间,每天刷题的小G连做梦都是代码,于是有了这道题. 给定一个 ...
- ACM_滚动AC
滚动AC Time Limit: 2000/1000ms (Java/Others) Problem Description: 小光最近拉了几个同学入ACM的坑,为鼓励A题,就增加奖励制度:每AC三道 ...
- Java Controller下兼容xls和xlsx且可识别合并单元格的excel导入功能
1.工具类,读取单元格数据的时候,如果当前单元格是合并单元格,会自动读取合并单元格的值 package com.shjh.core.util; import java.io.IOException; ...
- [ CTSC 2007 / BZOJ 2151 ] Backup / 种树
\(\\\) \(Description\) 给出一个数轴上\(N\)个点的坐标\(A_i\),选择\(K\)个点对,使得这\(K\)个点对每个点对的距离之和尽可能小. \(N\in [0,10^5] ...
- MySQL主从备份配置
MySQL主从热备配置 两台服务器的MySQL版本都是5.5.41master:192.168.3.119slave:192.168.3.120 MySQL主服务器配置:1.创建用于备份的用户 gra ...
- Zabbix 客户端安装教程(第二篇)
Zabbix 客户端安装教程 blog地址:http://www.cnblogs.com/caoguo [root@localhost ~]# yum install -y gcc make [roo ...
- layer:好看的弹出窗口
layer是一款web弹层组件,只需在调用时简单地配置相关参数,即可轻松实现丰富与便捷的操作体验. 这是layer的官方地址,里面的使用介绍非常详细(http://layer.layui.com/) ...