【JZOJ 4986】神秘物质
来源:互联网 发布:装甲恶鬼村正 知乎 编辑:程序博客网 时间:2024/04/27 23:42
Description
Solution
裸的Splay版子,不解释。
复杂度:
Code
#include <cstdio>#include <cstdlib>#include <cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fod(i,a,b) for(int i=a;i>=b;i--)#define min(q,w) ((q)<(w)?(q):(w))#define max(q,w) ((q)>(w)?(q):(w))using namespace std;typedef long long LL;const int N=200500;int read(int &n){ char ch=' ';int q=0,w=1; for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar()); if(ch=='-')w=-1,ch=getchar(); for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;}int n,m;int b0,root;struct qqww{ int mx,mi,l,r,nv,co,v,fa,lv,rv;}b[N];void merge(int e){ int l=b[e].l,r=b[e].r; b[e].lv=b[l].lv?b[l].lv:b[e].v; b[e].rv=b[r].rv?b[r].rv:b[e].v; b[e].mx=max(b[l].mx,max(b[r].mx,b[e].v)); b[e].mi=min(b[l].mi,min(b[r].mi,b[e].v)); b[e].co=b[l].co+b[r].co+1; if(b[e].co-1)b[e].nv=min(b[l].nv,min(b[r].nv, min(((b[l].rv)?abs(b[e].v-b[l].rv):(int)1e9),((b[r].lv)?abs(b[e].v-b[r].lv):(int)1e9)))); else b[e].nv=1e9;}void UP(int q){ int t=b[q].fa; if(b[t].l==q) { b[t].l=b[q].r; b[b[q].r].fa=t; b[q].r=t; }else { b[t].r=b[q].l; b[b[q].l].fa=t; b[q].l=t; } if(b[b[t].fa].l==t)b[b[t].fa].l=q; else b[b[t].fa].r=q; b[q].fa=b[t].fa; b[t].fa=q; merge(t); merge(q);}bool SD(int q){return q==b[b[q].fa].l;}void rotate(int q,int w){ while(b[q].fa!=w) { if(b[b[q].fa].fa!=w) if(SD(q)==SD(b[q].fa))UP(b[q].fa); else UP(q); UP(q); } if(!w)root=q;}int search(int q,int w){ if(b[b[q].l].co>=w)return search(b[q].l,w); w-=b[b[q].l].co+1; return w?search(b[q].r,w):q;}int main(){ int q,w,e,_; read(n),read(_); b[0].mi=b[0].nv=1e9; b[1]=b[0];b[1].fa=2;b[1].co=1; fo(i,2,n+1) { read(b[i].v); b[i].l=i-1; b[i].fa=i+1; merge(i); } b[n+2].l=n+1; merge(n+2);root=n+2; b0=2+n; rotate(n/2,0); rotate(n/3,n/2); fo(i,1,_) { char ch,ch1; for(ch=getchar();ch!='m'&&ch!='i';ch=getchar()); ch1=getchar(); read(q),read(w); q++; if(ch1=='e') { int t=search(root,q-1); rotate(t,0); rotate(t=search(root,q+2),root); b[t].l=0; merge(t); merge(root); ch='i',q--; } if(ch=='i') { rotate(q=search(root,q),0); b0++; b[b0].v=w; b[b0].r=b[q].r; b[b0].fa=q; b[b[q].r].fa=b0; b[q].r=b0; merge(b0); merge(q); }else { w++; rotate(search(root,q-1),0); rotate(q=search(root,w+1),root); q=b[q].l; if(ch1=='a') { printf("%d\n",b[q].mx-b[q].mi); } if(ch1=='i') { printf("%d\n",b[q].nv); } } } return 0;}
0 0
- 【JZOJ 4986】 神秘物质
- 【JZOJ 4986】神秘物质
- 神秘物质
- jzoj 4986. 【GDOI2017模拟2.25】神秘物质 可持久化treap
- [bzoj4864]神秘物质
- JZOJ4986. 神秘物质
- [BJWC2017]神秘物质 Treap
- splay jzoj4986 神秘物质
- [BJWC2017][JZOJ4986]神秘物质
- 【GDOI2017模拟2.25】神秘物质
- [JZOJ4986] 神秘物质(splay模板)
- BZOJ4864 [BeiJing 2017 Wc]神秘物质
- 4864: [BeiJing 2017 Wc]神秘物质
- 暗物质是宇宙中最为神秘的物质之一
- bzoj 4864: [BeiJing 2017 Wc]神秘物质 splay
- bzoj 4864: [BeiJing 2017 Wc]神秘物质 (splay)
- [BZOJ4864][BeiJing 2017 Wc]神秘物质(splay)
- 神秘
- Search in Rotated Sorted Array
- sqlserver启动混合身份验证方式
- 贪心算法
- 剑指offer(题六)
- 【JAVA秒会技术之搞定数据库递归树】Mysql快速实现递归树状查询
- 【JZOJ 4986】神秘物质
- 在一个项目的不同位置去定义同一个变量~
- 蛙人高频交易拆单策略—带手续费拆单策略及原理说明
- Git rebase、merge 区别
- 数据库设计(上)
- 【机器学习】KNN(k-Nearest Neighbor)算法
- 协方差的意义和计算公式
- Linux基础——ls命名
- c++进阶---IO类详解(二)--文件流的详解