bzoj1895】的更多相关文章

[BZOJ1895]Pku3580 supermemo Description 给出一个初始序列fA1;A2;:::Ang,要求你编写程序支持如下操作: 1. ADDxyD:给子序列fAx:::Ayg的每个元素都加上D.例如对f1,2, 3,4,5g执行"ADD 241" 会得到f1,3,4,5,5g. 2. REVERSExy:将子序列fAx:::Ayg翻转.例如对f1,2,3,4,5g执 行"REVERSE 24"会得到f1,4,3,2,5g. 3. REVOL…
supermemo bzoj-1895 Pku-3580 题目大意:给定一个n个数的序列,需支持:区间加,区间翻转,区间平移,单点插入,单点删除,查询区间最小值. 注释:$1\le n\le 6.1\cdot 10^6$. 想法: 这数据范围给的我真是醉了. 显然用平衡树,这里用非旋转Treap,题目让你干什么你就干什么. 区间加:撕出子树区间后打标记维护区间加. 区间翻转:撕出子树区间后打标记维护区间翻转. 区间平移:相当于两段相邻区间交换,所以撕成四部分:左边,第一个区间,第二个区间,右边.…
1895: Pku3580 supermemo Time Limit: 15 Sec  Memory Limit: 64 MBSubmit: 77  Solved: 47[Submit][Status] Description 给出一个初始序列fA1;A2;:::Ang,要求你编写程序支持如下操作: 1. ADDxyD:给子序列fAx:::Ayg的每个元素都加上D.例如对f1,2, 3,4,5g执行"ADD 241" 会得到f1,3,4,5,5g. 2. REVERSExy:将子序列f…
记个板子,还是挺好用的. #include <bits/stdc++.h> using namespace std; ]; int rt,n,m,l,r,x,A,B,C,t; struct O{ int l,r,x,m,o,s,v; }a[]; void up(int u){ a[u].s=a[a[u].l].s+a[a[u].r].s+; a[u].m=min(a[a[u].l].m,a[a[u].r].m); a[u].m=min(a[u].m,a[u].v); } void build(…
fhqtreap 其实fhqtreap只有可持久化之后才用新建节点... reverse和splay一样. //#include<bits/stdc++.h> #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; typedef pair<int, int> PII; ; int n, root, cnt, m, last; ], rnd[N]; ];…