P2042 [NOI2005]维护数列 数列区间和,最大子列和(必须不为空),支持翻转.修改值.插入删除. 练码力的题,很毒瘤.个人因为太菜了,对splay极其生疏,犯了大量错误,在此记录,望以后一定要多多回顾!!!! (以后复习splay板子干脆就这道题算了) 1.审题问题(明明就是题目没说清楚的说) 最大子序列和不能为空,也就是必有数,有负数你也得选. 2.思路方面: 关于插入:在要插入的地方通过splay把他腾出空当不就行了.即把k旋到根,k+1旋到右儿子,则k+1左儿子必为空,此时把数列…
因为要讲座,随便写一下,等讲完有时间好好写一篇splay的博客. 先直接上题目然后贴代码,具体讲解都写代码里了. 参考的博客等的链接都贴代码里了,有空再好好写. P2042 [NOI2005]维护数列 题目描述 请写一个程序,要求维护一个数列,支持以下 6 种操作:(请注意,格式栏 中的下划线‘ _ ’表示实际输入文件中的空格) 输入输出格式 输入格式: 输入文件的第 1 行包含两个数 N 和 M,N 表示初始时数列中数的个数,M 表示要进行的操作数目. 第 2 行包含 N 个数字,描述初始时的…
到这里 \(A\) 了这题, \(Splay\) 就能算入好门了吧. 今天是个特殊的日子, \(NOI\) 出成绩, 大佬 \(Cu\) 不敢相信这一切这么快, 一下子机房就只剩我和 \(zrs\) 了. 忽然回想起之前大佬的一幕幕, 有一丝惆怅 真的不知道该怎么安慰dalao... 不过上天不会忽视那些默默努力的人的对吧 不想被说做作, 但是如果dalao能看到这篇博客的话, 大佬, 高考加油啊 为什么在这里写这些呢? \(Splay\) 其实是大佬领进门的, 学习的也是大佬的板子, 大佬很久…
手动博客搬家: 本文发表于20180825 00:34:49, 原地址https://blog.csdn.net/suncongbo/article/details/82027387 题目链接: (luogu) https://www.luogu.org/problem/show?pid=2042 (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=1500 思路分析: 这个题嘛..思路没啥好说的 用splay每个点维护四个量:\(su…
P2042 [NOI2005]维护数列 题意 题目描述 请写一个程序,要求维护一个数列,支持以下\(6\)种操作:(请注意,格式栏中的下划线'_'表示实际输入文件中的空格) 输入输出格式 输入格式: 输入文件的第\(1\)行包含两个数\(N\)和\(M\),\(N\)表示初始时数列中数的个数,\(M\)表示要进行的操作数目. 第\(2\)行包含\(N\)个数字,描述初始时的数列.以下\(M\)行,每行一条命令,格式参见问题描述中的表格. 输出格式: 对于输入数据中的GET-SUM和MAX-SUM…
题目链接 2017.12.24 第一次写: 时间: 2316ms (1268ms) 空间: 19.42MB (19.5MB)(O2) 注:洛谷测的时间浮动比较大 /* 插入一段数:将这些数先单独建一棵平衡树t'.将pos旋到根,pos+1旋到son[root][1],直接将t'放到son[pos+1][0]即可 删除一段数:将要删除区间旋转到r+1的左儿子上,直接删除 统一修改一段数.区间反转:同样,提取修改区间,打标记 区间求和:提取,输出记录的sum 最大子序列:有一种求最大子序列的nlog…
学了半天平衡树,选择了一道题来写一写,发现题目是裸的splay模板,但是还是写不好,这个的精髓之处在于在数列的某一个位置加入一个数列,类似于treap里面的merge,然后还学到了题解里面的的回收空间做法,利用时间换取空间也是一种非常不错的做法,由于题目中有区间翻转的操作,所以只能用splay来写,然后对于一些区间最大值和区间最大子序列的询问我们可以用类似于线段树的合并操作来维护,总的来说这是一道对于树形数据结构非常好的运用的题目.——by VANE #include<bits/stdc++.h…
题目描述 请写一个程序,要求维护一个数列,支持以下 6 种操作:(请注意,格式栏 中的下划线' _ '表示实际输入文件中的空格) 输入输出格式 输入格式: 输入文件的第 1 行包含两个数 N 和 M,N 表示初始时数列中数的个数,M 表示要进行的操作数目. 第 2 行包含 N 个数字,描述初始时的数列. 以下 M 行,每行一条命令,格式参见问题描述中的表格 输出格式: 对于输入数据中的 GET-SUM 和 MAX-SUM 操作,向输出文件依次打印结 果,每个答案(数字)占一行. 输入输出样例 输…
#include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #include<stack> #define Tp Treap* #define DTp pair<Tp,Tp> #define ft first #define sc second #define INF 0x7f7f7f7f #define MAXN 500000+10 using n…
思路 超级恶心的pushdown 昏天黑地的调 让我想起了我那前几个月的线段树2 错误 这恶心的一道题终于过了 太多错误,简直说不过来 pushup pushdown 主要就是这俩不太清晰,乱pushdown 其他的写的还没啥毛病(能看出来) 代码 #include <iostream> #include <cstdio> #include <stack> #include <cstring> #include <algorithm> #defi…