如何用treap写luogu P3391】的更多相关文章

treap大法好!!! splay什么的都是异端 --XZZ 先%FHQ为敬 (fhq)treap也是可以搞区间翻转的 每次把它成(1~L-1)(L~R)(R+1~n)三块然后打标记拼回去 对于有标记的先交换一下左右儿子再异或一下各儿子的标记 虽说跑的不算快但还是可以挑战一下splay的 代码蒯上 //get out splay! #include<iostream> #include<iomanip> #include<cmath> #include<cstdi…
[luogu P3391] 文艺平衡树 题目背景 这是一道经典的Splay模板题——文艺平衡树. 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 输入输出格式 输入格式: 第一行为n,m n表示初始序列有n个数,这个序列依次是(1,2, \cdots n-1,n)(1,2,⋯n−1,n) m表示翻转操作次数 接下来m行每行两个数 [l,r][l,r] …
如何用ActiveQt写导出类 最近一直在用ActiveQt框架来写ActiveX插件, 由于项目需要提示类的导出, 所以上午捣鼓了一下, 现在记录记录.其实内容主要是把Qt手册里自己用到的部分整理一下而已.导出类的编写~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~用ActiveQt框架写导出类, 主要注意几点:1. 派生关系这里要注意必须要从QObject或它的派生类派生, 并且QObject要放在第一个. 也就是说, 如果你的类要从多个类…
在装好ubuntu之后今天学习了一些linux的一些基础知识: windows里面打开命令窗口是win+r,在linux系统里面,ctrl+alt+t打开终端,今天的一些指令都是围绕终端来说的 首先sudo apt install tree 这个语句的意思就是安装tree这个软件,这个程序是linux软件包里自带的,用于查看电脑的文件分布情况 然后说一些常用的命令: cd+要打开的文件名表示打开一个文件 cat+要打开的文件名表示查看一个文件的内容 touch+文件名表示创建一个该名字的文件 /…
title author date CreateTime categories Latex 论文elsevier,手把手如何用Latex写论文 lindexi 2019-02-13 10:38:20 +0800 2018-2-13 17:23:3 +0800 Latex 这几天在开始写论文,准备发的是elsevier,这个网站的instruction有问题,下载的东西基本上好多的错误,所以我就写博客记录. 关于使用 Latex 的好处请看使用LaTeX写论文 - CSDN博客 在开始的时候需要先…
这道题要求区间反转...好东西.. 对于Splay:把l-1旋到根,把r+1旋到根的右儿子,这样r+1的左儿子就是整个区间了,然后对这个区间打个tg 注意要插-Inf和Inf到树里面,防止越界,坐标要+1 #include<cstdio> #include<iostream> #define R register int using namespace std; ,Inf=0x3f3f3f3f; inline int g() { R ret=,fix=; register :fix…
Code: #include<bits/stdc++.h> using namespace std; void setIO(string s) { string in=s+".in"; string out=s+".out"; freopen(in.c_str(),"r",stdin); freopen(out.c_str(),"w",stdout); } namespace fhqtreap { #define…
https://www.luogu.org/problemnew/show/P3391 以前写过题解的入门题重写练板子.wdnmd真就 ' == ' 写成 ' = ' 了编译器不报错呗. #include<bits/stdc++.h> using namespace std; const int maxn=100010; int n,m,rt=0,c[maxn][2]={},fa[maxn]={},rev[maxn]={},siz[maxn]={}; inline void pushup(in…
题意 给出一个长为$n$序列$[1,2,...,n]$,$m$次操作,每次指定一段区间$[l,r]$,将这段区间翻转,求最终序列 题解 虽然标题是$Splay$,但是我要用$FHQ\ Treap$,考虑先将$[l,r]$这段区间$split$出来($k$即为这段区间) void split(int o, int k, int &l, int &r) { if(!o) { l = r = 0; return ; } if(siz[lc[o]] < k) l = o, split(rc[…
搞java的同学们可能对无副作用这个概念比较陌生,这是函数式编程中的一个概念,无副作用的意思就是: 一个函数(java里是方法)的多次调用中,只要输入参数的值相同,输出结果的值也必然相同,并且在这个函数执行过程中不会改变程序的任何外部状态(比如全局变量,对象中的属性,都属于外部状态),也不依赖于程序的任何外部状态. 比如下面的两个方法,就可以认为是无副作用的. /** * * @author leo * */ public class NoSideEffect { public static i…