自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

linkfqy

                          ——A link to FQY.

  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 带修改的莫队算法

【前言】普通的莫队算法固然强大,但是不能支持修改操作 于是就有了带修改莫队这种神奇的东西。【做法】普通的莫队可以看这里 那么对于询问的结构体,可以多记录一个信息ti 表示到这个询问为止最后做的修改的编号至于排序么……与普通莫队类似,只是把ti作为第3个关键字 (当R在同一块的,就按ti排序)处理时,要使当前区间,修改的指针一起动 (每次线性移动修改指针(修改/撤销),使得前ti个

2017-04-29 21:22:32 2119 1

原创 【游记】ZJOI 2017 Day2 #3

今天就考试了,感觉还不错 T1看上去前40%的部分分很可做,但是我想了两个小时硬是没想出来Orz 于是想起上次省选的教训,仔细看了下T2,直接N*Q秒掉20分 至于T3……貌似很像后缀数组,但是我并不会 直接打了一个10分暴力…… 然后,然后时间久没有了……出了考场才知道后缀数组是错误的……总之,这次把能得到的分数都拿来了,还是比较可以的

2017-04-28 22:21:39 781 1

原创 【游记】ZJOI 2017 Day2 #2

今天又听了一天的课……上午主要是ZZX大神在讲随(luan)机(gao)题 学会了用某种猥琐方法求最大团Orz……下午由某不知名神级教练讲数据结构Orz 直接硬杠了一下午省选题……这是我见过最叼的教练顺带一提,明天就要考试了,准备好被踩……

2017-04-27 20:20:27 839 1

原创 【带修改莫队】BZOJ2120 数颜色

题面在这里带修莫队第一题……十分简单,没有什么可讲的 不会的可以看这里但是查了一个下午……心态奔溃了 原因竟然是pow(n,2/3)的2/3是整数除,外加一些奇怪的东西附上代码:#include<cstdio>#include<algorithm>#include<cmath>using namespace std;const int maxn=10005,maxs=1000005;i

2017-04-27 16:24:53 1173 1

原创 莫队算法

【前言】莫队算法(Mo’s algorithm)是由莫涛队长发明的,一种处理区间问题的离线算法,由于其代码简便,常数巨小,适合各种打暴力。另:关于带修改的莫队,可以看这里【做法】前提:如果已知区间[L,R]的答案,可以很快(log或常数级别)地得到区间[L±1,R±1]的答案。 对于区间询问[L,R],我们可以先读进来所有询问,按照某种顺序依次处理(线性移动L,R端点),就可以得到所有询问的答案。

2017-04-26 21:52:41 1608 1

原创 【游记】ZJOI 2017 Day2 #1

今天一早,就去余姚中学听大哲哥讲课,讲得很好 只能勉强听懂半节课orz 不过值得一提的是,余姚中学的饭菜实在是…… 可能是学校历史悠久的缘故吧,建筑都比较旧 机房的环境也比较差……都是上古时期的设备 嗯,就这样,明天继续听(bei)课(nue)

2017-04-26 19:48:35 815 1

原创 【莫队算法】BZOJ2038 [2009国家集训队]小Z的袜子

题面在这里莫队的经典题…… 对于已知区间[L,R],它的答案是: ∑C2c[i]的个数C2R−L+1\frac{\sum C_{c[i]的个数}^2}{C_{R-L+1}^2} 由于处理分数比较麻烦,所以我们只要维护分子即可 即:对于变化的c[i]个数(设为x),维护C2xC_x^2 减去原来的,加上后面的即可附上代码:#include<cstdio>#include<algorithm

2017-04-26 14:07:06 1089 1

原创 【主席树|莫队|离线树状数组】BZOJ1878 [SDOI 2009]HH的项链

题面在这里这道题有三种解法,以下分别介绍(等我A掉会补全)【主席树】关于主席树戳这里造一个lst[i]表示位置i的这个数上一次出现的位置(如果没有就是0) 那么对于每次询问L~R范围里的数字种数 其实就是询问对于L≤i≤RL≤i≤R,满足lst[i]<Llst[i]<L的个数 那么就很好搞了,对lst造N棵值域线段树 询问就直接找到L-1这个位置看它前面有几个 复杂度O(Qlogn)O(Q

2017-04-25 07:18:18 1058 1

转载 【涨姿势】Windows下调整系统栈大小(附图)

我们知道,递归以及开局部变量都是要占用栈空间的 而Windows默认给每个线程仅仅分配1M内存(大神说是这样的) 这时就需要手动调整系统栈大小了。以下转自Lynstery: 在用gcc/g++编译时指定参数 -Wl,–stack=size size是栈的大小,单位为字节。 比如我现在要编译一个名为hh的c++程序,栈的大小要16M,就这样如果是像本蒟蒻一样用dev-c++的,那么可

2017-04-23 18:32:05 9391 3

原创 【并查集+离线】BZOJ1015 [JSOI2008]星球大战starwar

星球大战starwar 省选前的信心题……题面: Description  很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系。某一天,凭着一个偶然的 机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直 接或间接地连接。 但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划 地摧毁反抗军占

2017-04-23 15:36:38 780 1

原创 【Treap/非旋转Treap】BZOJ1503 [NOI2004]郁闷的出纳员

郁闷的出纳员 非旋转Treap的经典题啊…… 题面如下: DescriptionOIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了

2017-04-20 20:04:40 796 1

原创 【Treap/非旋转Treap】BZOJ3224 [Tyvj1728]普通平衡树

BZOJ 3224 平衡树裸题…… 写了Treap/非旋转Treap两个版本。 题面如下:Description您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为小于x,且最大的数

2017-04-18 20:05:24 923 2

原创 非旋转Treap-总结

【前言】 非旋转Treap,又称FHQ_Treap,函数式Treap。由神犇FHQ首先提出(OrzOrzOrz)。由于使用了函数式编程的思想,非旋转Treap可以实现可持久化。 此外,非旋转Treap的大多数操作都基于分裂与合并,所以代码简短精炼,非常适合OIer食用。 【操作】 就讲讲分裂与合并好了……其他都是可以用脚趾头想出来的。分裂(split) 对于一棵Treap,我们把它分为ke

2017-04-18 19:58:03 2574 1

原创 主席树/函数式线段树/可持久化线段树

【前言】主席树、函数式线段树、可持久化线段树 这三者其实是一个东西…… 它的作用十分显然,就是访问线段树的历史版本……【实现】假设我们要对线段树进行Q次插入操作,如何(随机)访问第i次操作后的线段树?我们当然可以对每个状态都造一棵完整的线段树,但是显然会MLE啊,怎么办? 观察可以发现,线段树的插入操作每次只会更新logN个节点,其他节点都不会变 于是我们可以利用前一次操作的状态,避免重复构

2017-04-15 11:10:41 2403 1

原创 【主席树】POJ2104 K-th Number

K-th Number 一道典型的主席树模板题。 题面如下: DescriptionYou are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data

2017-04-14 22:30:26 466 1

原创 【我可能学了假线段树】【线段树】BZOJ1798 [AHOI2009]Seq 维护序列seq

题面在这里题解之前写的线段树都是数组版的,代码巨长…… 今天试着链式储存线段树,发现极其好用! pushdown,pushup,添加标记等等的操作都可以写成成员函数,代码十分简洁!而且Insert和Query操作都借鉴了ZH神犇的写法,非常省代码 所以说,我以前可能学了假的线段树另外,本题有一个注意点,就是如果一个节点同时拥有两种标记,会有优先级的问题 你不知道到底是先加还是先乘 我们可以

2017-04-13 21:33:42 800

原创 【树链剖分+线段树】BZOJ1036 [ZJOI2008]树的统计Count

题面在这里典型的树链剖分……不解释了 不懂的可以看这里#include<cstdio>#include<algorithm>using namespace std;const int maxn=30005,maxe=60005;int n,q;int son[maxe],nxt[maxe],lnk[maxn],tot;void add(int x,int y){ son[++t

2017-04-08 20:17:10 486 1

原创 树链剖分-总结

【树链剖分是啥?】树链剖分是用于将树上操作转化为序列操作的一种算法。在信息学竞赛中有着广泛的应用。 比如:给定一棵树以及各点的权值,每次操作给出两个点,把这两点之间路径上的所有点的权值改变或者求和。 这种题目就是典型的树链剖分,转化成序列操作之后用线段树维护即可。【概念】我们把子树x的节点个数记为siz[x]。 那么对于任意节点i,定义它的儿子中siz[]最大的为i的“重儿子”(H_son[i

2017-04-08 18:38:41 1319 3

原创 树状数组区间修改+查询

【前言】树状数组可以处理单点修改,区间求和的操作,这里就不再赘述了。现在,我们要考虑用树状数组实现区间加,区间求和的操作。由于树状数组常数较小,代码简短,可以在一些场合代替线段树。【实现】首先明确一下,query(c,i)表示求c数组的前缀和。定义要维护的序列为a[],对a[]进行一次差分,得到c[]。 即c[i]=a[i]-a[i-1],显然c[1]+c[2]+……+c[i]=a[i]如何维护c

2017-04-07 18:20:39 895 1

原创 【带权并查集】POJ1182 [NOI2001]食物链

题面在这里这是一道经典的带权并查集例题。 我们定义权值s[i]表示节点i与根的关系: 0:和根是同一种动物 1:i能够吃根节点 2:i被根节点吃 这样定义的好处就是,在模3的意义下,各个节点之间的关系能够传递 (接下来本题解所讨论的范围都是在模3的意义下) 例如: 这样我们的权值s[i]就能满足一维向量加法了。那么很显然,s[i]也满足一维向量减法: a与b的关系就是s[a

2017-04-04 10:27:59 1473 1

原创 Splay-总结

【前言】Splay Tree,又名伸展树,是OI中应用非常广泛的一种数据结构。相比其他BST,Splay的效率还是不错的。我们一般用Splay维护一个序列。【操作】Splay有以下几个基本操作:1.rot旋转 这个不用我多说了,平衡树中很常见的操作2.splay 伸展 splay(x,k)操作的目的是:从子树(子序列)x中找到第k个,并通过旋转的方式,将其弄到子树的根上。 这里就不得不提一下S

2017-04-02 13:19:04 1157 1

原创 【Splay】BZOJ1500 [NOI2005]维修数列

维修数列题面如下: 这是Splay的终极模版题,思路非常清晰 这里提几个难点:1.求最大子序列 我们可以对每个节点维护3个信息: lm,rm,ma分别表示该段序列的最大前缀和、最大后缀和、最大子序列 那么maintain的时候就可以由子节点更新信息: lm=max(s[0]->lm,s[0]->sum+x,s[0]->sum+x+s[1]->lm); rm=max(s[1]->rm

2017-04-02 12:13:43 974 1

周东《浅析最大最小定理在信息学竞赛中的应用》

周东大神关于s-t平面图与对偶图的转化PPT 可以快速求解s-t平面图中的最大流问题 解释很详细,很有帮助

2017-05-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除