https://www.luogu.org/problemnew/show/P3391

知识点:1.split:1.拆数值 2.拆排名

    2.merge

    3.截取l - r这个区间,先截l - 1出来,再截 r - l +1(是r-l+1而不是r)

code:

#include <bits/stdc++.h>
#define M 500002
using namespace std;
int n,m,root;
int tot = 0;
int lazy[M];
int head[M],cnt;
struct edge
{int to;int nxt;
}e[M * 2];
void add(int x,int y)
{e[++cnt].nxt = head[x];e[cnt].to = y;head[x] = cnt;
}
int siz[M];
int ch[M][2],val[M],rd[M];
void updata(int x)
{siz[x] = siz[ch[x][0]] + siz[ch[x][1]] + 1;
}
int newnode(int x)
{val[++tot] = x;rd[tot] = rand();siz[tot] = 1;return tot;
}
void down(int x)
{swap(ch[x][0],ch[x][1]);if(ch[x][0]) lazy[ch[x][0]] ^= 1;if(ch[x][1]) lazy[ch[x][1]] ^= 1;lazy[x] = 0;
}
void split(int now,int k,int &x,int &y)
{if(!now){x = y = 0;return;}else{if(lazy[now])down(now);if(siz[ch[now][0]] < k){x = now;split(ch[now][1],k - siz[ch[now][0]] - 1,ch[now][1],y);}else{y = now;split(ch[now][0],k,x,ch[now][0]);}updata(now);}
}
int merge(int A,int B)
{if(!A || !B)return A + B;if(rd[A] < rd[B]){if(lazy[A])down(A);ch[A][1] = merge(ch[A][1],B);updata(A);return A;   } else{if(lazy[B])down(B);ch[B][0] = merge(A,ch[B][0]);updata(B);return B;}
}
void work(int x,int y)
{int a,b,c,d; split(root,x - 1,a,b);split(b,y - x + 1,b,c);lazy[b] ^= 1;root = merge(a,merge(b,c));
}
void insert(int t)
{root = merge(root,newnode(t));
}
void print(int i)
{if(!i) return;if(lazy[i]) down(i);print(ch[i][0]);printf("%d ",val[i]);print(ch[i][1]);
}
int main()
{srand(1);scanf("%d%d",&n,&m);for(int i = 1;i <= n;i++)insert(i);int x,y;while(m--){scanf("%d%d",&x,&y);work(x,y);}print(root);return 0;
}

转载于:https://www.cnblogs.com/xyj1/p/10943407.html

非旋Treap——维护数列相关推荐

  1. 非旋treap套线段树

    BZOJ3065. 去年用pascal 块链过了.. 今年来试了试非旋treap大法   注定被块链完爆 代码留这. 第一份 :辣鸡的  垃圾回收做法  跑得极慢 1 #include <bit ...

  2. FHQ-Treap(非旋treap/平衡树)——从入门到入坟

    作者:hsez_yyh 链接: FHQ-Treap--从入门到入坟_hsez_yyh的博客-CSDN博客 来源:湖北省黄石二中信息竞赛组        著作权归作者所有.商业转载请联系作者获得授权,非 ...

  3. 【20181026T2】**图【最小瓶颈路+非旋Treap+启发式合并】

    题面 [错解] 最大最小?最小生成树嘛 蛤?还要求和? 点分治? 不可做啊 写了个MST+暴力LCA,30pts,140多行 事后发现30分是给dijkstra的 woc [正解] 树上计数问题:①并 ...

  4. P4847 银河英雄传说V2 非旋treap

    传送门 文章目录 题意: 思路: 题意: 思路: 让我们分析一下题目需要实现什么操作: (1)(1)(1)将某个序列放到某个的后面,也就是合并两个序列. (2)(2)(2)将一个序列从某处断开. (3 ...

  5. 【模板】非旋Treap

    数组版 struct node {int son[2];int val, s;int v;node() {son[0] = son[1] = 0;s = 0;val = rand();} }t[100 ...

  6. [luogu2042] [NOI2005]维护数列

    前言 写写比较麻烦的这题 题目相关 题目大意 写一个大数据结构 数据范围 20000 题目链接 前置 先过模板题,比如会个非旋treap,写一下,通过[luogu3369][模板]普通平衡树 poss ...

  7. 带旋treap概念及模板,带例题:普通平衡树

    带旋Treap 二叉查找树BST(Binary Search Tree)定义 Treap定义 模板合集(均为O(logn)O(logn)O(logn)) push_up模板 旋转模板 插入模板 删除模 ...

  8. [非旋平衡树]fhq_treap概念及模板,例题:普通平衡树,文艺线段树

    文章目录 概念 全套模板 push_up模板 split拆树模板(按权值拆) split拆树模板(按个数拆) merge合并模板(地址版) merge合并模板(带返回根) 区间模板 insert插入模 ...

  9. BZOJ3223文艺平衡树——非旋转treap

    此为平衡树系列第二道:文艺平衡树您需要写一种数据结构,来维护一个有序数列,其中需要提供以下操作: 翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 ...

  10. BST、AVL、BTree、B+Tree、B*Tree、23Tree、234Tree、TTree、RBTree、LLRBTree、AATree、SplayTree、Treap、无旋Treap、scap

    喜欢这篇文章吗?喜欢的话去看博主的置顶博客,即可依据分类找到此文章的原版得到更好的体验, 图片及代码显示的问题,笔者深感抱歉,想要更好的体验去原博文即可. title: tree mathjax: t ...

最新文章

  1. JQuery 名称冲突
  2. ios微信小程序下拉刷新怎么配_为什么他的下拉刷新是个动画效果?
  3. C语言中,scanf与scanf_s的简单区别
  4. 解决Linux下vi或vim操作Found a swap file by the name
  5. bytes数组转string指定编码_好程序员Java学习路线分享Java基础之string
  6. java 删除zip文件_Java--字节缓冲流的效率有多高?测试一下
  7. 【前端技术】一篇文章搞掂:微信小程序
  8. 微信小程序发送模板消息通知
  9. Java之POI操作,封装ExcelUtil实现Excel导入导出
  10. itext生成pdf间距_java将html转为pdf
  11. 寻找春天nbsp;九宫格日记-2014.04.26
  12. airpods删除别人的配对_男女属相最佳婚配表 最准的12生肖配对表
  13. win10 如何更换即将过期的产品密钥
  14. linux下的chm阅读器?
  15. 构建北京市政百姓信件分析实战案例
  16. Centos Ubuntu 安装 gfortran
  17. round函数c语言,fegetround
  18. 记账想要简单又安全,使用电脑记账是最佳的选择
  19. SAP ECC连接SAP PI系统配置
  20. H3C 二层链路聚合

热门文章

  1. 为什么Spring MVC能自动转换json/xml,你研究过它背后的原理吗?
  2. 微软Azure云服务故障超过24小时,原因竟是——被雷劈了
  3. python searchsorted_Python 二分查找与 bisect 模块
  4. python求解微分方程组_用python解一阶微分方程组
  5. 2018/4/7 Mybatis源码结构概览
  6. Dubbo 分布式事务一致性实现
  7. 第二次公共考试,判断错题集
  8. UVALive 6181
  9. poj 1159 Palindrome(dp)
  10. 【手绘】A old painting ,drawed in middle school ,grade 8