低级数据结构(线段树、堆、单调队列、单调栈等)
qpswwww
这个作者很懒,什么都没留下…
展开
-
[UOJ 25][IOI2014]Wall(裸线段树)
题目链接http://uoj.ac/problem/25题目思路其实这个题在ACM/ICPC Shanghai Training Camp的比赛中也有见过,当时赛题中还要求叠加一个区间加标记,在我的对拍查错的配合下,我们队的sol神犇当时A掉了那个题。 这个题很显然比上海的赛题简单很多对吧,不过我还是太弱了,加之第一次做交互题,所以花了一上午才AC。。。。 我们不妨设区间中元素ii的值为val[原创 2015-02-20 22:23:44 · 1740 阅读 · 0 评论 -
[BZOJ 2819]nim(DFS序+树状数组+SG博弈)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=2819思路其实就是要支持查询树上一段路径的xor和,并支持修改点权。。。 如果我在考场上的话绝对上树剖或者LCT。。。但是此题n实在太大了,会卡常数,而且丧病的是vfk构造的最后3个点全部是链,直接把DFS卡爆栈。。。正确的做法是,由于树的形态不变,所以我们首先通过BFS或者手写一个栈来模拟D原创 2015-04-01 21:52:26 · 589 阅读 · 0 评论 -
[省选前题目整理][POJ 3468]A Simple Problem with Integers(线段树区间修改)
题目链接http://poj.org/problem?id=3468题目大意要求对一个序列支持查询区间和、对给定区间中所有元素加同一值。思路经典的线段树区间修改、区间求和模板题。代码#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <algorithm>#define MAX原创 2015-04-11 15:40:27 · 461 阅读 · 0 评论 -
[SCOI 2015集训-2015.4.16]Problem A(离散化+线段树)
题目描述在如今的网络中,TCP 是一种被广泛使用的网络协议,它在传输层提供了可靠的通信服务。 众所周知,网络是存在时延的,例如用户先后向服务器发送了两个指令 op1op1 和 op2op2,并且希 望服务器先处理指令 op1op1,再处理指令 op2op2;但由于网络时延,这两个指令可能会失序到达, 而导致服务器先执行了指令 op2op2,这是我们不希望看到的。TCP 协议拥有将失序到达的报文原创 2015-04-16 20:10:07 · 924 阅读 · 1 评论 -
[BZOJ 1499][NOI 2005]瑰丽华尔兹(DP+单调队列优化)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=1499思路一个很显然的O(nmT)O(nmT)的做法就是令f[t][i][j]f[t][i][j]表示时刻tt时,钢琴位于(i,j)(i,j)处时,从时刻11到tt的最长滑行路程。很容易得到DP方程 f[t][i][j]=max{f[t−1][i][j],f[t−1][ilast][jlast原创 2015-04-25 11:11:33 · 1543 阅读 · 0 评论 -
[BZOJ 1597][USACO 2008 Mar]土地购买(DP+斜率优化)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=1597思路首先对所有的矩形按照第一关键字长度升序,第二关键字宽度升序排序,然后贪心地将每个会被其他矩形完全覆盖住的矩形全部删去。显然此时所有的矩形是按照长度升序,按照宽度降序排列的。为什么呢?假如有两个矩形i,j,i<ji,j,i<j,且ii的宽度是大于jj的宽度的,由于之前去掉矩形前排序时已经原创 2015-05-05 19:36:44 · 606 阅读 · 0 评论 -
[POI 2014]Little Bird(单调队列优化DP)
题目链接http://main.edu.pl/en/archive/oi/21/pta题目大意mm只小鸟各自要从1号柱子飞到nn号柱子,假如当前小鸟在ii号柱子,那么它可以飞向i+1i+1到i+Kii+K_i号柱子,若小鸟从柱子ii飞到了柱子jj且Hi≤HjH_i \leq H_j,则小鸟需要付出1单位的代价,问每只小鸟从柱子1飞到柱子nn各自至少需要花费多少代价。思路用f[i]f[i]表示小鸟飞到原创 2015-05-13 11:39:32 · 764 阅读 · 0 评论 -
[POI 2011]Temperature(单调队列)
题目链接http://main.edu.pl/en/archive/oi/18/tem题目大意某国进行了连续n天的温度测量,测量存在误差,测量结果是第i天温度在[li,ri][l_i,r_i]范围内。 求最长的连续的一段,满足该段内可能温度不降。思路显然,一个合法的区间是保证lil_i不增,并且区间左端点的rr小于等于区间右端点的rr。因为显然温度的线段尽量贴着每天的L边界才能尽可能满足条件。假如原创 2015-05-15 11:00:39 · 663 阅读 · 0 评论 -
[POI 2012]Warehouse Store(堆+贪心)
题目链接http://main.edu.pl/en/archive/oi/19/hur题目大意有一家专卖一种商品的店,考虑连续的n天。 第i天上午会进货Ai件商品,中午的时候会有顾客需要购买Bi件商品,可以选择满足顾客的要求,或是无视掉他。 如果要满足顾客的需求,就必须要有足够的库存。问最多能够满足多少个顾客的需求。思路应该是个很显然的贪心做法吧。类似这样的贪心真的是非常多的了。 维护一个大根原创 2015-05-14 19:44:15 · 820 阅读 · 1 评论 -
[POI 2012]Tour de Byteotia(并查集)
题目链接http://main.edu.pl/en/archive/oi/19/tou题目大意给出一个无向图,要你删除其中一些边,使得对于i∈[1,k]i\in [1,k],点ii不在环上思路水题对于所有的两个端点编号均大于kk的点,先并查集预处理维护它们的连通性。这些点构成的环上不会有点i∈[1,k]i\in [1,k]然后对于剩下的边,每条边都至少有一个端点i∈[1,k]i\in [1,k],若原创 2015-06-23 17:30:38 · 809 阅读 · 0 评论 -
[NOI 2014复习]斜率优化(BZOJ 1096、BZOJ 1010)
1.BZOJ 1096 仓库建设题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=1096思路令f[i]=[1,i]f[i]=[1,i]区间,在第i个工厂建立仓库,所需最少总花费。DP方程显然 f[i]=min1≤j<i{f[j]+w[j,i]}+C[i]f[i]=\min_{1\leq j<i}\{f[j]+w[j,i]\}+C[i] 其中原创 2015-07-11 11:45:31 · 934 阅读 · 0 评论 -
[省选前题目整理][BZOJ 3675][APIO 2014]序列分割(斜率优化DP)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=3675思路首先设f[i][k]=长度为i的序列,划分了k次f[i][k]=长度为i的序列,划分了k次得到的分数,sum[i]=∑it=1Atsum[i]=\sum_{t=1}^i{A_t},即序列AA的前缀和 很容易推出DP方程: f[i][k]=max{f[j][k−1]+sum[j](s原创 2015-04-01 11:24:32 · 856 阅读 · 0 评论 -
[省选前题目整理][BZOJ 1010][HNOI 2008]玩具装箱toy(斜率优化DP)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=1010思路很容易想到一个O(n2)O(n^2)的DP方程: f[i]=min{f[j]+(i−j−1+sum[i]−sum[j]−L)2},j<if[i]=min\{f[j]+(i-j-1+sum[i]-sum[j]-L)^2\},j<i 其中sum[x]=∑xi=1Cisum[x]=\su原创 2015-04-01 08:45:17 · 633 阅读 · 0 评论 -
[BZOJ 1563][NOI 2009]诗人小G(四边形优化DP)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=1563思路定义每行的标准长度为limitlimit,设f[i]=前i句诗的最小代价,则f[i]=min{f[j]+(∑ik=j+1lenk+i−j−1−limit)p}f[i]=前i句诗的最小代价,则f[i]=min\{f[j]+(\sum_{k=j+1}^{i}len_k+i-j-1-limi原创 2015-02-22 21:59:42 · 1038 阅读 · 0 评论 -
[清橙A1363][THUSC 2012]水位(并查集+高精度压位)
题目链接http://www.tsinsen.com/A1363题目大意给一个n×nn×n大小的、每个格子具有高度的棋盘(姑且看作是个沙盘模型吧)灌水,求这个棋盘灌水后的状态种数。思路这个题实在太神了,我跪了半个上午+一个下午才AC,跪跪跪 首先我们可以想到,可能由于某些格子组成的“墙”的阻挡,水被分成了若干个小水池,这些水池之间是互不影响的,一个水池水位高一点、低一点不会另一个水池造成任何影响,原创 2015-02-26 18:38:26 · 1123 阅读 · 0 评论 -
[BZOJ 3675][APIO 2014]序列分割(斜率优化DP)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=3675思路这题不是很难,但是坑了我一个下午+半个晚上才做出来,郁闷 首先设f[i][k]=长度为i的序列,划分了k次f[i][k]=长度为i的序列,划分了k次得到的分数,sum[i]=∑it=1Atsum[i]=\sum_{t=1}^i{A_t},即序列AA的前缀和 很容易推出DP方程:原创 2015-02-25 19:35:19 · 1994 阅读 · 1 评论 -
[BZOJ 2728][HNOI 2012]与非(并查集+计数问题)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=2728思路其实这个与非真的很神奇啊,它可以覆盖与、或、非、亦或四种运算,这个可以手玩出来(本渣太懒没试过。。。)。那么这样的话,不管AiAi中某一位是0还是1,每个AiAi选了多少次,最终的答案中的这一位既有可能是1,也有可能是0,但是某个数是否能被与非出来还是有限制的,观察到如果对于任意的Ai原创 2015-02-27 16:29:33 · 940 阅读 · 0 评论 -
[BZOJ 2727][HNOI 2012]双十字(树状数组+计数问题)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=2727思路这个题好难啊啊啊啊啊啊啊啊啊啊啊啊啊,花了我半天的时间去研究vfk和ydc的题解才算大概搞懂 因为题目描述非常坑爹,竟然没有说R、CR、C各自的范围,只是说了R∗CR*C的大小,因此我们只能开个1e6的一维数组,把二维的东西都压到一维里,这个比较好实现(以下用array[i,j]来表原创 2015-02-27 19:56:52 · 900 阅读 · 2 评论 -
[BZOJ 1855][SCOI 2010]股票交易(单调队列优化DP)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=1855思路很显然是个DP题,比较容易想到下面的DP做法: 用f[i][j]f[i][j]表示第ii天,手上有jj个股票的最大获利。显然最终的答案为max{f[i][0]}max\{f[i][0]\}(显然以某天交易结束后收手不干,肯定是手上没有股票是最优的),DP初始化如下: f(x)={f原创 2015-03-20 11:54:57 · 1860 阅读 · 0 评论 -
[省选前题目整理][BZOJ 1911][APIO 2010]特别行动队(斜率优化DP)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=1911思路 注:单调递减的队列里,相邻两个点的连线的斜率是单调递增的,即维护一个下凸壳代码#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <algorithm>#de原创 2015-03-31 20:35:07 · 653 阅读 · 0 评论 -
[省选前题目整理][BZOJ 2434][NOI 2011]阿狸的打字机(AC自动机+fail树+DFS序+树状数组)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=2434思路将每个打印出来的串插入AC自动机后可以发现,a串在b串中的出现次数,就是在AC自动机的fail树中a串的终止结点的子树中,包含了的b串节点的个数。 这是非常显然的,根据AC自动机的fail指针定义,一个代表前缀a的点的fail指向的前缀b,b一定是a最长的后缀。 如上图就是一个原创 2015-04-02 15:55:00 · 612 阅读 · 0 评论 -
[省选前题目整理][BZOJ 1096][ZJOI2007]仓库建设(斜率优化DP)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=1096思路裸DP很水。。。但是O(n^2)承受不起这么大的范围,一定TLE,只能采取小于O(n)的斜率优化DP,具体就是维护一个双向队列,使得队列内的点形成下凸的函数图像,这样就能舍掉很多不必继续循环DP的非最优解,具体可以参考JSOI集训队论文《单调性优化在动态规划中的应用》下面是我花了将近半原创 2015-03-31 21:30:06 · 655 阅读 · 0 评论 -
[BZOJ 3156]防御准备(斜率优化DP)
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=3156思路很容易推出DP方程: f[i]=min{f[j]+∑k=j+1i(i−k)}+a[i]f[i]=min\{f[j]+\sum_{k=j+1}^i(i-k)\}+a[i] 进一步对该方程变换得到 f[i]=min{f[j]+(i−j−1)(i−j)2}+a[i]f[i]=min\{原创 2015-04-01 15:07:05 · 577 阅读 · 0 评论 -
[POI 2011]Lightning Conductor(DP优化)
题目链接http://main.edu.pl/en/archive/oi/18/pio题目大意已知一个长度为n的序列a1,a2,…,an。 对于每个1<=i<=n,找到最小的非负整数p满足 对于任意的j, aj < = ai + p – sqrt(abs(i-j))思路容易想到DP思路,用f[i]f[i]表示对应于ii的最小非负整数pp,DP方程为 f[i]=max1≤j≤n{0,⌈aj+|i−原创 2015-06-15 11:42:13 · 990 阅读 · 0 评论