数据结构
zzk_233
这个作者很懒,什么都没留下…
展开
-
bzoj 1112 砖块 KLO-Building blocks
这道题居然是treap。。。根据题目的要求,我们可以发现,因为题目要求是用最小的修改次数(即+1,-1)达到连续k个相同的数,根据数学上的玄学知识可以得知,在选取中位数的时候,修改次数最小。证明: 当选择2到3点之间的时候,修改次数最小,假设选择了2,此时为s1+s2+s2+s3而换成1的时候,虽然1不用到2的s1但是2,3,4都多了一步s1,所以只有在中位数的位置时才不会...原创 2018-09-08 14:32:27 · 136 阅读 · 0 评论 -
落谷 P3834 可持久化线段树 1(主席树)(区间第k小)
设区间为l,r,用r版本减去l版本求出区间第k小,一个板子#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>using namespace std;struct node1{ int v; int po;}ed[500005];s...原创 2018-09-23 12:53:32 · 438 阅读 · 0 评论 -
bzoj 2049 洞穴勘测(LCT刷题)
LCT 的板子。。。。后续会讲原理。。#include&amp;amp;amp;amp;amp;amp;lt;cstdio&amp;amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;amp;lt;cmath&amp;amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;amp;lt;cstring&am原创 2018-09-19 13:59:08 · 187 阅读 · 0 评论 -
bzoj 1500: [NOI2005]维修数列(splay大模板)
没什么好说的,就是各种操作。st数组用来回收内存,root为根,tot为点数,lmax为左端最大值,rmax为右端最大值,smax为全区间最大值,sum为区间和(这部分操作见),val为权值,son【2】为左右子节点编号,siz为大小,xg为是否有修改标记,fz为是否有反转标记。(注释部分可以不写,有助于理解)。#include&lt;cstdio&gt;#include&lt;...原创 2018-09-15 11:09:21 · 210 阅读 · 0 评论 -
codeforces 718C Sasha and Array
线段树维护矩阵信息。。一定要把初值都赋好。。。因为矩阵具有结合律,所以可以把子矩阵相加作为上一层的矩阵,对于更新的加值x,先在线段树外将转移矩阵自乘x次,再添加到线段树里。主要是码的准确。。#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#de...原创 2018-10-30 18:18:10 · 137 阅读 · 0 评论