
Data Structure
文章平均质量分 70
wyfcyx_forever
这个作者很懒,什么都没留下…
展开
-
BZOJ1577 USACO 2009 Feb Gold 1.Fair Shuttle Solution
题目大意:n个站点,有m群奶牛,第i群奶牛要从si站点出发,直到原创 2014-09-18 16:26:04 · 1823 阅读 · 9 评论 -
POJ3017 Cut The Sequence
题目大意:将一个非负整数序列切成连续的若干段,使得每一段的和均不超过一定值,在此基础上最小化每一段的最大值的和。思路:O(N2)的动态规划方程非常明显:fi=min0≤ji{fj+maxj+1≤k≤i{wk}}这样利用RMQ的预处理即可做到O(N^2).不过这样显然是不能AC的。我们考虑能够进行什么优化。我们发现以下性质:(1)fi≤fj(1≤ij≤原创 2014-10-24 22:53:17 · 1067 阅读 · 0 评论 -
BZOJ3196 二逼平衡树 Solution
题意:写一个数据结构支持如下操作:(1)区间第k大(2)区间内求某个数的排名(3)修改某个位置的数(4)区间内求某个数的前趋、后继。Sol:以下提供两种做法。Sol1:线段树套平衡树。非常裸的做法,除询问区间第k大复杂度为O(log^3n),其余操作时间复杂度为O(log^2n).Code1:#include#include#include#defin原创 2014-10-02 14:20:49 · 1170 阅读 · 0 评论 -
动态树之详解
动态树问题是一种动态维护森林连通性,以及路径上的信息的问题。目前我们可以利用link-cut-tree进行求解。最近发现自己以前写的那个版本实在是太渣了,于是膜拜神犇代码写了新的版本。我们首先简单解释一下Link-Cut-Tree的原理。将树划分为若干重链,重链之间用轻链相连接。每一条重链用一颗Splay树维护。Splay的序关系由点的深度确定。划分的依据?关键在于Ac原创 2014-10-02 21:53:05 · 1392 阅读 · 1 评论 -
BZOJ1452 [JSOI2009]Count Solution
题意:自行脑补做法:直接开权值那么多的二维树状数组暴力。Code:#include #include #include #include using namespace std; inline int getc() { static const int L = 1 << 15; static char buf[L], *S = buf, *T = buf;原创 2014-10-17 09:43:48 · 967 阅读 · 0 评论 -
BZOJ3720 Gty的妹子树Solution
题目大意:维护一棵初始有n个节点的有根树(根节点为1),树上节点编号为1-n,每个点有一个权值wi。支持以下操作:0 u x 询问以u为根的子树中,严格大于x的值的个数。(u^=lastans,x^=lastans)1 u x 把u节点的权值改成x。(u^=lastans,x^=lastans)2 u x 添原创 2014-10-17 09:12:58 · 1433 阅读 · 4 评论 -
BZOJ2648 SJY摆棋子
题意:这天,SJY显得无聊。在家自己玩。在一个棋盘上,有N个黑色棋子。他每次要么放到棋盘上一个黑色棋子,要么放上一个白色棋子,如果是白色棋子,他会找出距离这个白色棋子最近的黑色棋子。此处的距离是 曼哈顿距离 即(|x1-x2|+|y1-y2|) 。现在给出N思路:kdtree第一题。kdtree是个什么东西呢?比如现在有一些二维平面上的点,我们按照维度首先进行一次划分:比如第一原创 2014-10-17 10:36:45 · 2317 阅读 · 0 评论 -
BZOJ3362 [Usaco2004 Feb]Navigation Nightmare 导航噩梦
题目大意:自行脑补。思路:维护两个维度上的带权并查集即可。注意对于题目给出的一堆关系,我们应该添加两对关系。Code:#include #include #include #include #include usingnamespace std; #define N原创 2014-10-21 16:37:43 · 1467 阅读 · 0 评论