这道题用到单调队列以及降维处理。 之前我并没有学过单调队列,第一眼看到直接想法是二维线段树,但是我并不会写二维线段树,而且时间复杂度也很玄乎。 于是补了一波单调队列。 简单说一点。好久了我好像快忘了。 单调队列的作用是求一个滑动区间的最值。 比如对于一个长度为1000的数列,求以每个数开始长度为7的 ...
分类:
其他好文 时间:
2018-04-11 15:38:41
阅读次数:
182
二维线段树区间更新啊 树套树的外层树,如果是线段树的话一般似乎不能打标记?(毕竟标记不好下传) 然而起码对于这题是可以的...对于外层线段树,每个节点放两个值dat和setv,分别是得到的值和修改操作留下的标记。 然后外层线段树要标记永久化...标记永久化之后,标记的定义不一样了。 这道题里用dat ...
分类:
其他好文 时间:
2018-03-17 18:50:32
阅读次数:
153
4785: [Zjoi2017]树状数组 Description 漆黑的晚上,九条可怜躺在床上辗转反侧。难以入眠的她想起了若干年前她的一次悲惨的OI 比赛经历。那是一道 基础的树状数组题。给出一个长度为 n 的数组 A,初始值都为 0,接下来进行 m 次操作,操作有两种: 1 x,表示将 Ax 变成 ...
分类:
编程语言 时间:
2018-03-11 14:17:14
阅读次数:
283
题链: https://www.luogu.org/problemnew/show/P3688题解: 二维线段树。 先不看询问时l=1的特殊情况。 对于一个询问(l,r),如果要让错误的程序得到正确答案, 显然应该满足l-1位置的值=r位置的值(或者说两个位置的异或值为0)。 那么定义二元组函数f( ...
分类:
编程语言 时间:
2018-03-10 20:27:12
阅读次数:
191
题目:Luogu 3437 这是今天 SLYZ 考试的一道题,一道二维线段树的入门题,惨的是我之前没有写过二维线段树,更不知道什么是标记用久化,于是自己 YY 出了标记永久化,但由于我十分的菜所以写炸了。 如果按照普通线段树的方法来做,发现外层的 x 树是无法 pushdown 和 maintain ...
分类:
其他好文 时间:
2018-03-05 19:29:07
阅读次数:
212
数据结构: 权值线段树,二维线段树,矩阵树,用线段树完成平衡树操作 splay,fhq treap hash_table 分块/莫队 搞懂STL中的vector,set,map,muiltset,pair的所有骚操作 背下pb_ds中rbtree,priority_queue,splay_tree等 ...
分类:
其他好文 时间:
2018-02-27 16:03:23
阅读次数:
157
题目链接 "BZOJ 4785" 题解 这道题真是令人头秃 = = 可以看出题面中的九条可怜把求前缀和写成了求后缀和,然后他求的区间和却仍然是sum[r] ^ sum[l 1],实际上求的是闭区间[l 1, r 1]的区间和。什么时候[l 1, r 1]的区间和与[l, r]的想等呢?就是位置l 1 ...
分类:
编程语言 时间:
2018-02-20 11:49:17
阅读次数:
230
题目链接: "BZOJ" "洛谷" $O(n^2)$DP很好写,对于当前的i从之前满足条件的j中选一个最大值,$dp[i]=d[j]+1$ cpp for(int j=1; j include include define gc() getchar() define now node[rt] def ...
分类:
编程语言 时间:
2018-02-11 12:30:05
阅读次数:
199
令F(x,y)=|x-y|+|a[x]-a[y]|,每次可以将a[x]修改为k,或者查询满足f(x,i)≤k的个数。 ...
分类:
其他好文 时间:
2018-01-23 22:05:24
阅读次数:
193