bzoj 1251 裸splay】的更多相关文章

裸的splay,只需要注意 max[-1]:=-maxlongint 就行了,否则在update的时候子节点的 max值会在max[-1]里选 /**************************************************************     Problem: 1251     User: BLADEVIL     Language: Pascal     Result: Accepted     Time:16008 ms     Memory:3448 k…
裸的splay 今儿写的splay,由于自己刚开始学,发现几个容易漏掉的地方 1:开始给所有的儿子赋值为-1 2:给max[-1]赋值为-maxlongint 3:开始father[root]:=sroot 4:在find和rotate中的push_down 5:数组的下边界为-1 6:push_down中要给标签清空 7:build中要给tree数组赋值 8:rotate操作不熟悉 由于不熟悉,发现的问题有很多,以后多加练习就好了 /******************************…
题目大意 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这样的,真是没技术含量……这样 我也出一道题,我出这一道的目的是为了让大家以后做这种题目有一个“库”可以依靠,没有什么其他的意思.这道题目 就叫序列终结者吧.[问题描述] 给定一个长度为N的序列,每个序列的元素是一个整数(废话).要支持以下三种操作: 1. 将 [L, R] 这个区间内的所有数加上 V. 2. 将 […
1251: 序列终结者 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 3778  Solved: 1583[Submit][Status][Discuss] Description 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列 要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这样的,真是没技术含量……这样 我也出一道题,我出这一道的目的是为了让大家以后做这种题目有一个…
思路: splay维护序列的裸题 啊woc调了一天 感谢yzy大佬的模板-- //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define N 55555 #define inf 0x3f3f3f3f int n,m,root,cnt,size[N],ch[N][2],fa[N],v[N],mx[N],rev[N],tag[N];…
题目背景 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这样的,真是没技术含量…… 这样我也出一道题,我出这一道的目的是为了让大家以后做这种题目有一个“库”可以依靠,没有什么其他的意思. 这道题目就叫序列终结者吧. 题目描述 给定一个长度为N的序列,每个序列的元素是一个整数(废话).要支持以下三种操作: 将[L,R][L,R][L,R]这个区间内的所有数加上VVV. 将[…
序列终结者 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 4594  Solved: 1939[Submit][Status][Discuss] Description 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列 要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这样的,真是没技术含量……这样 我也出一道题,我出这一道的目的是为了让大家以后做这种题目有一个“库”可以依…
1251: 序列终结者 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 3773  Solved: 1579 [Submit][Status][Discuss] Description 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列 要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这样的,真是没技术含量……这样 我也出一道题,我出这一道的目的是为了让大家以后做这种题目有…
链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1251 思路 好简单的模板题 不过还是wrong了好几发 叶子节点要注意下,不能使用 遇到就不管 写的fhq-treap,OI中常数最大的平衡树,中间还T了一发 代码 #include <iostream> #include <ctime> #include <cstdlib> #include <cstdio> using namespace std;…
1588: [HNOI2002]营业额统计 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 15446  Solved: 6076[Submit][Status][Discuss] Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额.分析营业情况是一项相当复杂的工作.由于节假日,大减价或者是其…
//By BLADEVIL #include <cstdio> #include <set> #define inf 1<<30 using namespace std; int n,ans; int main() { int x; set<int>bt; bt.insert(inf); bt.insert(-inf); scanf("%d",&n); ;i<=n;i++) { //printf(" %d\n&qu…
裸的平衡树,可以熟悉模板用,写题写不出来的时候可以A以下缓解下心情. /************************************************************** Problem: User: BLADEVIL Language: Pascal Result: Accepted Time: ms Memory: kb ****************************************************************/ //By BL…
裸的字典树还是挺简单的. 四个基本操作建立.查找.插入.删除 建立新结点我是用的c++中 new操作.当然也可以用malloc,都方便 不过指针阿.地址阿.这其中关系什么的我貌似还不是很清楚阿. 因为刚开始我的头结点也是定义的指针.然后程序就炸了.我不清楚原因呢. 有待弄清楚. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cstri…
Splay 还是splay序列维护,这题我WA了的原因是:在Push_up的时候,当前子树的max我是直接取的L.R和v[x]的最大值,但是如果没有左/右儿子,默认是会访问0号结点的mx值,而这个值没有初始化成-INF,所以就会导致所有负max值全部变为0…… /************************************************************** Problem: 1251 User: Tunix Language: C++ Result: Accepte…
Prob Hint BZOJ 3323 文艺平衡树 区间翻转 BZOJ 1251 序列终结者 区间翻转,询问最值 BZOJ 1895 supermemo 区间加,翻转,剪切,询问最值.点插入,删除. BZOJ 1056 排名系统 专治操作完不伸展 BZOJ 1552 robotic sort 区间反转,清除标记,splay 的灵活运用 BZOJ 3224 普通平衡树 像普通平衡树一样使用 Splay 1.查找区间第K大+排序 http://acm.hdu.edu.cn/showproblem.p…
这东西都没什么板子着实让我很难受啊,只能到网上抄抄补补, 记下两个用到的博客 https://blog.csdn.net/clove_unique/article/details/50630280 https://blog.csdn.net/ophunter_lcm/article/details/18157185 BZOJ 3224 复制粘贴?... #include <iostream> #include <string.h> #include <cstdio> #…
一.题目 Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 Input 第一行为n,m n表示初始序列有n个数,这个序列依次是(1,2--n-1,n)  m表示翻转操作次数接下来m行每行两个数[l,r] 数据保证 1<=l<=r<=n Output 输出一行n个数字,表示原始序列经过m次变换后的结果 Sample Input 5 3…
最近感到KMP不会啊,以前都是背板的现在要理解了. #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; ; char S[Maxn]; int k,P[Maxn],Ans; inline void Kmp(char * Str) { ; ;Str[i];i++) { ]!=Str[i] && j)…
不知不觉AC100题了,放眼望去好像都是水题.在这里就做一个存档吧(特别感谢各位大神尤其是云神http://hi.baidu.com/greencloud和丽洁姐http://wjmzbmr.com/的blog提供的题解) 代码什么的有时间在放. 1000: A+B Problem 好吧,这也算题,记得我第一次直接copy然后他不给我加库然后就CE了= = 1001: [BeiJing2006]狼抓兔子 一道经典的最小割对偶图转spfa,参见白书,第一次打时按边建图然后TLE得很惨,然后又重打了…
[BZOJ1500][NOI2005]维修数列(Splay) 题面 不想再看见这种毒瘤题,自己去BZOJ看 题解 Splay良心模板题 真的很简单 我一言不发 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<set> #include<…
BZOJ 比较裸的状压DP. 刚开始写麻烦惹... \(f[i][s]\)表示考虑了前\(i\)家商店,所买物品状态为\(s\)的最小花费. 可以写求一遍一定去\(i\)商店的\(f[i]\)(\(f[i][s]=f[i-1][s]+dis[i]\)),然后再和不去\(i\)商店的\(f[i-1]\)取个\(\min\). 复杂度是\(O(nm2^m)\)吗... 可以优化,处理\(f[s]\)表示在某家商店买\(s\)集合的物品的最小代价.然后令\(g[s]\)表示考虑所有商店买\(s\)集合…
noip之前学的内容了,看到题竟然忘了怎么建图了,复习一下. 2-sat 大概是对于每个元素,它有0和1两种选择,必须选一个但不能同时选.这之间又有一些二元关系,比如x&y=1等等... 先把每个点拆成0和1两个点. 那么我们就建图,如果x等于A的话y必须等于B,那么从x的A点向y的B点连一条有向边,表示选了一个点它所有的后继点也必须选. 没有一组合法解的情况当且仅当x的01两个点缩点后在同一个强联通分量里. bzoj 1823 裸题 #include<iostream> #inclu…
bzoj 2818 两个互质的数的gcd=1,所以他们同时乘一个素数那么他们的gcd=这个素数,所以枚举素数p找n/p以内有多少对互质数,用欧拉函数. bzoj 2809 可并堆,对于每一个子树显然是选花费小的节点合算,维护一个大根堆,并且当堆的花费和大于m时删掉堆根. bzoj 2243 树剖 线段树区间染色查询区间颜色段数量,树剖之后还要考虑两段衔接之后颜色段是否减少. bzoj 2005 会发现(x,y)到(0,0)路上有gcd(x,y)-1棵植物,即求sum(2*gcd(i,j)-1),…
NOIP回来就一直想着学平衡树...平衡树写久了调不出来真的会头脑发热.jpg 大概只写了几道题... fhqtreap是不需要旋转的平衡树,仅使用分裂合并,一样可以保持平衡树的性质,并且可以非常简单地处理区间问题. fhqtreap的核心有两段代码,split(分裂)和merge(合并) split(x, l, r, k),表示把原x的子树以第k小数为界限,权值<=第k小数的数分在左子树,根为l,其他的分在右子树,根为r void split(int x, int &l, int &…
[bzoj1251]序列终结者(伸展树) Description 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列 要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这样的,真是没技术含量……这样 我也出一道题,我出这一道的目的是为了让大家以后做这种题目有一个“库”可以依靠,没有什么其他的意思.这道题目 就叫序列终结者吧. [问题描述] 给定一个长度为N的序列,每个序列的元素是一个整数(废话).要支持以下三种操作: 1.…
[BZOJ3223]Tyvj 1729 文艺平衡树 试题描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 输入 第一行为n,m n表示初始序列有n个数,这个序列依次是(1,2--n-1,n)  m表示翻转操作次数接下来m行每行两个数[l,r] 数据保证 1<=l<=r<=n 输出 输出一行n个数字,表示原始序列经过m次变换后的结果  输入示例 输出示…
给你一个数列,让你实现区间加上一个值,区间翻转,区间最大值 裸splay,懒标记一发即可 #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> using namespace std; struct Node{ Node *ch[2]; int m, v, k, s, f; inline int cmp(int x){ int o = 0; if(ch[0]…
#include<iostream> #include<cstdio> #include<string> #include<cstring> #include<cstdlib> using namespace std; template<int Size> struct trie_node{ bool terminable; //表示节点为字符串的结尾 int node; //子节点的个数 trie_node *child[Size]…
Day -1 在机房颓颓颓颓颓,晚上得知这次考试题本来是要给 ZJOI2018 用的,结果没用上..可想而知考试的难度.. 但愿不爆零 Day 0 坐了一上午火车,顺便找茁神犇拷了个 COD,然后接着坐大巴.实在是太困在大巴上睡了一觉.坐在姚神犇旁边感觉 rp++. 下午我们是鸡试机,敲 splay 敲了一半弃了,然后改敲线段树..最后写了个 A+B 对拍玩了玩 Google Chrome 的小恐龙就走了. 晚上在宾馆颓颓颓颓颓,旁边颜神犇在码数位 DP ,自己在玩 COD... 真是自愧不如啊…
吐槽一下名字,泼辣的肉..OwO 我们知道分解出一个整数的所有质因子是O(sqrt(n)/ln(n))的 但是当n=10^18的时候就显得非常无力的 这个算法可以在大概O(n^(1/4))的时间复杂度的情况下把n分解成p*q 递归分解就可以得到质因子了,跑得非常快 做法是这样的,考虑利用生日悖论 设范围为[1,365]的正整数 设集合{x1,x2……,xk}当k大概到58时 那么这个集合中存在两个数相等的概率几乎为99% 那么相应的对于一个数n,我们随机一个集合,这个集合中任取两个数x,y,gc…