对于每个线段,我们对于L和R分别统计它作为左端点和右端点有多少个线段。对于2操作,我们用线段总数,减去不符合的线段。不符合的线段就是左端点大于l或者右端点小于r的线段。因为ri-li<=2,所以不会出现那种l<=pl&&pr<=r的情况(这种情况减了两遍)
代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5+10;
int n,q,s1[4*N],s2[4*N];
void up(int l,int r,int id,int x,int tp[]) {if(l==r) {tp[id]++;return ;}int m=(l+r)/2;if(x<=m) up(l,m,2*id,x,tp);else up(m+1,r,2*id+1,x,tp);tp[id]=tp[2*id]+tp[2*id+1];
}int qy(int l,int r,int ql,int qr,int id,int tp[]) {if(ql>qr) return 0;if(ql<=l&&qr>=r) return tp[id];int m=(l+r)/2,res=0;if(ql<=m) res+=qy(l,m,ql,qr,2*id,tp);if(qr>m) res+=qy(m+1,r,ql,qr,2*id+1,tp);return res;
}int main() {while(scanf("%d%d",&n,&q)!=EOF) {memset(s1,0,sizeof(s1));memset(s2,0,sizeof(s2));int cnt=0;while(q--) {int op,l,r;scanf("%d%d%d",&op,&l,&r);if(op==1) {cnt++,up(1,n,1,l,s1),up(1,n,1,r,s2);}else printf("%d\n",cnt-qy(1,n,l+1,n,1,s1)-qy(1,n,1,r-1,1,s2));}}return 0;
}

努力加油a啊,(o)/~

千万别用树套树(线段树)相关推荐

  1. 【BZOJ3110】【codevs1616】K大数查询,权值线段树套普通线段树

    Time:2016.05.09 Author:xiaoyimi 转载注明出处谢谢 传送门1 传送门2 思路: 之前没怎么接触过权值线段树(非主席树),这次就当学习了一下吧.一开始还把题意理解错了,我的 ...

  2. 【BZOJ-3196】二逼平衡树 线段树 + Splay (线段树套平衡树)

    3196: Tyvj 1730 二逼平衡树 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 2271  Solved: 935 [Submit][St ...

  3. BZOJ 3218(a + b Problem-二分图套值域线段树)

    出这题的人是怎么想出来的-- 言归正传,这题是二分图套值域线段树. 首先经过 @Vfleaking的神奇建图后,把图拆成二分图, 不妨利用有向图最小割的性质建图(以前我一直以为最小割和边的方向无关,可 ...

  4. P5787 二分图 /【模板】线段树分治(线段树分治、并查集)

    关于什么是合理的实现 解析 本题把并查集写在了题面上 然而,我却一直沉浸在一个及其通用的判断二分图的方法中: 一个图是二分图的充要条件是它没有奇环 怎么维护这个玩意?带权并查集! 怎么套线段树分治?可 ...

  5. 势能线段树/吉司机线段树-我没有脑子

    势能线段树/吉司机线段树 BZOJ3211 花神游历各国 BZOJ5312 冒险 BZOJ4355 Play with sequence BZOJ4695 最假女选手 \(A_i = max(A_i, ...

  6. 【BZOJ-2325】道馆之战 树链剖分 + 线段树

    2325: [ZJOI2011]道馆之战 Time Limit: 40 Sec  Memory Limit: 256 MB Submit: 1153  Solved: 421 [Submit][Sta ...

  7. BZOJ3862Little Devil I——树链剖分+线段树

    题目大意: 给一棵树,每条边可能是黑色或白色(起始都是白色),有三种操作: 1.将u到v路径上所有边颜色翻转(黑->白,白->黑) 2.将只有一个点在u到v路径上的边颜色翻转 3.查询u到 ...

  8. CodeForces - 160D Edges in MST(思维+tarjan/树链剖分+线段树)

    题目链接:点击查看 题目大意:给出一张 n 个点 m 条边组成的带权无向图,现在对于每条边来说,确定一下其分类: 一定是最小生成树上的边 可能是最小生成树上的边 一定不是最小生成树的边 题目分析:两种 ...

  9. CodeForces - 609E Minimum spanning tree for each edge(最小生成树+树链剖分+线段树/树上倍增)

    题目链接:点击查看 题目大意:给出一张 n 个点和 m 条边组成的无向图,现在询问包含每一条边的最小生成树 题目分析:考虑求解次小生成树的思路: 求出最小生成树 ans 枚举每一条非树边 ( u , ...

  10. 主席树——多棵线段树的集合

    主席树: (不要管名字) 我们有的时候,会遇到很多种情况,对于每一种情况,都需要通过线段树的操作实现. 碰巧的是,相邻两种情况下的线段树的差异不大.(总体的差异次数是O(N)级别的,均摊就是O(常数) ...

最新文章

  1. plsql的异常提示怎么定位_PLSQL异常处理
  2. python 基础命令-Python 命令行(CLI)基础库
  3. 【数据挖掘笔记八】分类:基本概念
  4. aws beanstalk mysql_AWS Elastic Beanstalk
  5. spss23出现数据消失_改善23亿人口健康数据的可视化
  6. linux nohup 运行,linux – 如何获取使用nohup运行的程序列表
  7. 7月国内手机出货量3419.9万部 5G手机果然还是很少!
  8. moco常用配置参数及实战
  9. 联邦快递认了:转运华为货件到美国,但称是“失误”!
  10. java项目源码分享_ssm项目分享600套
  11. 360保存html,360极速浏览器怎么保存网页为图片?
  12. pdf裁边app_PDF裁剪怎么使用?
  13. poco mysql 编译_Poco介绍及编译
  14. 计算机网络基础之传输介质
  15. 对抗生成网络代码Generative Adversarial Networks (GANs),Vanilla GAN,Deeply Convolutional GANs
  16. elk怎么读的_elk,elk的英文意思和翻译,elk的音标读音,用法,例句,发音,含义讲解
  17. 百度地图绘制实时路线以及最短线路规划
  18. 品管七大手法-6鱼骨图(转载)
  19. Altium Designer——PCB绘制
  20. 基于java(ssm)个人健康管理系统

热门文章

  1. IOS开发基础之时钟的实现
  2. 基线管理之Centos安全配置
  3. c++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取,2013年计算机二级C++模拟试题十一及答案...
  4. 多个线程访问统一对象的不同方法_不会多线程还想进BAT?精选19道多线程面试题,有答案边看边学...
  5. 程序一直吐司提示获取缓存记录失败以及吐司显示set Alias success
  6. java 字符串构造函数,java构造函数示例(构造方法)
  7. C++ STL 四种智能指针
  8. newduba首页怎么去掉_京喜小程序首页瘦身实践
  9. 深度思考的能力,决定了你能走多远
  10. 一家公司干了8年的程序员的年终总结