1500: [NOI2005]维修数列 Description Input 输入的第1 行包含两个数N 和M(M ≤20 000),N 表示初始时数列中数的个数,M表示要进行的操作数目。第2行包含N个数字,描述初始时的数列。以下M行,每行一条命令,格式参见问题描述中的表格。任何时刻数列中最多含有50 ...
分类:
其他好文 时间:
2017-11-27 20:12:49
阅读次数:
89
1500: [NOI2005]维修数列 Description Input 输入的第1 行包含两个数N 和M(M ≤20 000),N 表示初始时数列中数的个数,M表示要进行的操作数目。第2行包含N个数字,描述初始时的数列。以下M行,每行一条命令,格式参见问题描述中的表格。任何时刻数列中最多含有50 ...
分类:
其他好文 时间:
2017-11-22 21:58:20
阅读次数:
158
Input 输入的第1 行包含两个数N 和M(M ≤20 000),N 表示初始时数列中数的个数,M表示要进行的操作数目。 第2行包含N个数字,描述初始时的数列。 以下M行,每行一条命令,格式参见问题描述中的表格。 任何时刻数列中最多含有500 000个数,数列中任何一个数字均在[-1 000, 1 ...
分类:
其他好文 时间:
2017-07-19 10:40:56
阅读次数:
215
splay的高级题目,有splay的全部操作,然而本蒟蒻竟不自量力地把这道题作为splay的入门题,然后就学(mi)习(man)了一个星期…… 第一次是对着cyc的模版码的,万分感谢>< 第二次就自己码了一个小时(弱......) 就作为一个splay学习的模版吧! #include<cstdio> ...
分类:
其他好文 时间:
2017-06-22 21:47:48
阅读次数:
81
题意: 对于一个1~n的序列。进行m次区间反转操作; 求最后反转过的区间。 n,m<=100000。 题解: splay躶题。写完维修数列之后感觉这种题都好写了。 反转啥的打个标记下传就好,记得输出时再Pushdown标记就好了; 这篇题解就是说一下单旋和双旋的简单差别; 爷爷结点就是目标的情况不讨 ...
分类:
其他好文 时间:
2017-06-12 20:46:09
阅读次数:
215
#include<cstdio> #include<cstring> #include<algorithm> #include<queue> using namespace std; const int M=1000555,inf=1000000000; int read(){ int ans=0, ...
分类:
其他好文 时间:
2017-05-30 20:49:52
阅读次数:
238
【算法】splay 【题解】数据结构 感谢Occult的模板>_<:HYSBZ 1500 维修数列 #include<cstdio> #include<cctype> #include<cstring> #include<queue> #include<algorithm> using namesp ...
分类:
其他好文 时间:
2017-05-28 20:53:09
阅读次数:
202
1500: [NOI2005]维修数列 Description Input 输入的第1 行包含两个数N 和M(M ≤20 000),N 表示初始时数列中数的个数,M表示要进行的操作数目。第2行包含N个数字,描述初始时的数列。以下M行,每行一条命令,格式参见问题描述中的表格。任何时刻数列中最多含有50 ...
分类:
其他好文 时间:
2017-04-25 00:49:19
阅读次数:
195
●个人感觉: 代码长; 函数多; (很套路); (很强的Splay,无愧于“区间王”) ●NOI2005维修数列 一个可以当模板学习的题,包含了众多操作(函数): 区间插入,删除,更新,翻转,询问信息以及”回收空间”(名字很刚)等。 update()pushdown() rotate() splay ...
分类:
其他好文 时间:
2017-03-31 11:56:22
阅读次数:
250
题意:给定一个数列,要求维护:1、在p之后加入tot个数 2、删除p之后tot个数 3、将p之后tot个数修改为c 4、翻转p之后tot个数 5、输出p之后tot个数的和 6、输出整个数列的最大子段和。 题解:平衡树很经典的题目了……主要说一下4和6操作,4的话因为翻转操作是可以分治的,所以可以用翻 ...
分类:
其他好文 时间:
2017-02-26 14:15:14
阅读次数:
218