线段树版的海报

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

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

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. using namespace std;
  5. const int Max=40000001;
  6. struct Node{
  7. int x,y,id;
  8. }node[10001];
  9. int n,m,sum[Max],lazy[Max],tot[1001];
  10. void pushdown(int o,int len){//pushdown:对于lazy标记的一个下传
  11. if(lazy[o]){
  12. int left=o<<1,right=left+1;
  13. lazy[right]=lazy[left]=lazy[o];
  14. sum[left]=lazy[o];
  15. sum[right]=lazy[o];
  16. lazy[o]=0;
  17. }
  18. }
  19. void update(int o,int l,int r,int x,int y,int v){//一个上传操作
  20. if(x<=l and r<=y){
  21. sum[o]=lazy[o]=v;//sum[i]表示i这个节点当前的颜色
  22. return;
  23. }
  24. pushdown(o,r-l+1);
  25. int mid=(l+r)>>1,left=o<<1,right=left+1;
  26. if(x<=mid)update(left,l,mid,x,y,v);
  27. if(y>mid)update(right,mid+1,r,x,y,v);
  28. }
  29. void query(int o,int l,int r,int x,int y){//统计各个颜色都有多少个是外露的
  30. if(!(l^r)){
  31. tot[sum[o]]++;//即sum[o]这个节点的颜色的tot+1,tot[i]表示i这个颜色外露的个数
  32. return;
  33. }
  34. int mid=(l+r)>>1,left=o<<1,right=left+1;
  35. pushdown(o,r-l+1);
  36. if(x<=mid)query(left,l,mid,x,y);
  37. if(mid+1<=y)query(right,mid+1,r,x,y);
  38. }
  39. int main(){
  40. int maxn=-1,ans=0;
  41. scanf("%d%d",&m,&n);
  42. for(register int i=1;i<=n;i++){
  43. scanf("%d%d",&node[i].x,&node[i].y);
  44. maxn=max(node[i].y,maxn);
  45. node[i].id=i;
  46. }
  47. for(register int i=1;i<=n;i++){
  48. update(1,1,maxn,node[i].x,node[i].y,node[i].id);
  49. }
  50. query(1,1,maxn,1,maxn);//统计答案
  51. for(register int i=1;i<=n;i++){
  52. if(tot[i])ans++;
  53. }
  54. printf("%d\n",ans);
  55. return 0;
  56. }

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

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

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

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

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

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

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

  4. Luogu3740 [HAOI2014]贴海报 (线段树)

    倒着来 #include <iostream> #include <cstdio> #include <cstring> #include <algorith ...

  5. BZOJ_4636_蒟蒻的数列_线段树+动态开点

    BZOJ_4636_蒟蒻的数列_线段树+动态开点 Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将 ...

  6. BZOJ_3252_攻略_线段树+dfs序

    BZOJ_3252_攻略_线段树+dfs序 Description 题目简述:树版[k取方格数] 众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏.今天他得到了一款新游戏< ...

  7. BZOJ_4653_[Noi2016]区间_线段树+离散化+双指针

    BZOJ_4653_[Noi2016]区间_线段树+离散化+双指针 Description 在数轴上有 n个闭区间 [l1,r1],[l2,r2],...,[ln,rn].现在要从中选出 m 个区间, ...

  8. BZOJ_2124_等差子序列_线段树+Hash

    BZOJ_2124_等差子序列_线段树+Hash Description 给一个1到N的排列{Ai},询问是否存在1<=p1<p2<p3<p4<p5<…<pL ...

  9. BZOJ_1826_[JSOI2010]缓存交换 _线段树+贪心

    BZOJ_1826_[JSOI2010]缓存交换 _线段树+贪心 Description 在计算机中,CPU只能和高速缓存Cache直接交换数据.当所需的内存单元不在Cache中时,则需要从主存里把数 ...

随机推荐

  1. spring-oauth-server实践:使用授权方式四:client_credentials 模式的客户端和服务端交互

    spring-oauth-server入门(1-11)使用授权方式四:client_credentials 模式的客戶端 一.客户端逻辑 1.界面入口(credentials_access_token ...

  2. Python3安装Requests

    安装Requests费了1天的时间,囧.终于还是在官网找到解决方法,可以参考这个http://docs.python-requests.org/en/latest/user/install/#inst ...

  3. leetcode算法: Find the Difference

    Given two strings s and t which consist of only lowercase letters.String t is generated by random sh ...

  4. CSS简介及基本知识

    (CSS)cascading style sheets:层叠样式表.级联式样式表,简称:样式表. Sheets :就是一个样式文件,它的扩展名为.css Style:外观,个性化 样式表的位置 为了学 ...

  5. Web微信

    一.源代码地址: https://github.com/HuangAm/Webweixin 二.总结: 1.分析Http请求 - 请求方式:get.post等等 - URL:每个请求的url,固定部分 ...

  6. Hibernate(十五):QBC检索、本地SQL检索和HQL删除

    QBC检索 QBC查询就是通过使用Hibernate提供的Query By Criteria API来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口. 1)通过Cr ...

  7. 基于DFS的拓扑排序

    传送门:Kahn算法拓扑排序 摘录一段维基百科上的伪码: L ← Empty list that will contain the sorted nodes S ← Set of all nodes ...

  8. enumerate给列表加索引

    >>> list = ['a','b','c'] >>> for i,j in enumerate(list): print(i,j) 0 a 1 b 2 c &g ...

  9. Java中的变量数据类型补充

    Java中变量的数据类型的补充 变量按照数据类型进行分类 1.基本数据类型 数值型:①整数类型(byte,short,int,long)②浮点型(float,doubbe)③字符型(char)④布尔型 ...

  10. html5之表格元素

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