08 2018 档案
摘要:[TOC] codeforces 794F Leha and security system [题目传送门][1] 题意 给出一个长度为$n$的序列,有两种操作: 1.将区间$[l,r]$中每一个元素的数字$x$改为$y$。 2.询问区间$[l,r]$的元素之和。 一共$q$次操作。$(1 \leq
阅读全文
摘要:[TOC] codeforces 794E Choosing Carrot [题目传送门][1] 题意 给出一个长度为$n$的序列,$A$和$B$开始玩游戏,每次可以从序列的两端删除一个数,直到删除到最后一个数,$A$想要使最后一个数尽量的大,而$B$想要使最后一个数尽量的小,$A$先手,问最后剩下
阅读全文
摘要:[TOC] codeforces 794D Labelling Cities [题目传送门][1] 题意 给出一个$n$个点$m$条边的图,要求给图中的每一个点赋一个值$x[i]$,使得任意两个点之间有边当且仅当$|x[i] x[j]| using namespace std; typedef lo
阅读全文
摘要:[TOC] BZOJ3438 小M的作物 [题目传送门][1] 题解 一道比较好的最小割转化模型,首先根据题目可知我们是要把整个图划分成两个集合,使得损失的收益最小,获得的收益最大。这样就可以转化成一个比较裸的最小割模型了。我们新建一个源点$S$和汇点$T$,然后对每个点向$T$连一条流量为$b[i
阅读全文
摘要:[TOC] BZOJ4026 dC Loves Number Theory [题目传送门][1] 题解 ~~什么鬼畜题目~~看了标题之后感觉很慌,以为是数论题,看了题目之后也没有思路,只能去求助由乃大神了。解答了一番之后感觉挺可做的。由于欧拉函数的计算公式是这样的$\phi(n)=n \prod \
阅读全文
摘要:[TOC] BZOJ1806 Miners 矿工配餐 [题目传送门][1] 题解 一道$Dp$题。我们记$f[i][a1][a2][b1][b2]$为当前到第$i$种食物,两种煤矿前两次配送的食物分别为$a1$、$a2$和$b1$、$b2$时,能过获得的煤矿数量。然后由于这样数组肯定会爆,所以我们滚
阅读全文
摘要:[TOC] codeforces 776E The Holmes Children [题目传送门][1] 题意 定义$f(n)$为满足$x+y=n$并且$gcd(x,y)=1$的有序正整数对个数,定义$g(n)=\sum_{d|n}f(\frac{n}{d})$,定义$F_k(n)$如下: $$ F
阅读全文
摘要:[TOC] LuoguP1501 Tree Ⅱ [题目传送门][1] ~~颓数据结构题真好~~ 题意 你需要维护一颗树,支持动态更改边,路径乘法,路径加法,询问路径节点权值和。初始节点权值都为1,保证每时每刻这都是一棵树,让你对于每个询问输出答案。 题解 ~~数据结构题真是酸爽啊~~ 一道裸的$LC
阅读全文
摘要:LCT模板 code: cpp include using namespace std; typedef long long ll; bool Finish_read; templateinline void read(T &x){Finish_read=0;x=0;int f=1;char ch=
阅读全文
摘要:[TOC] 知识点概要 虚树在竞赛中出现的次数并不多,但其思想确实十分高妙的。对于一棵树以及对于只涉及树中一些关键点的询问,我们只需利用这些关键点及关键点之间的$LCA$即可求出解。这便是虚树的高妙之处,可以将复杂度优化到$O(n q)$$(q$为询问次数$)$级别。并且有些时候我们并不需要建出这棵
阅读全文
摘要:[TOC] BZOJ3609 人人都说江南好 [题目传送门][1] 题解 好久没有做博弈题了,这题看了好久才想出来。首先我们通过一定的方法可以证明这个游戏最终的局面一定是这样的:$\{m,m,\cdots,m,n\%m\}$(只考虑$n\geq m$的情况,因为当$n using namespace
阅读全文
摘要:[TOC] (之前手动搬博客的时候忘记搬了。。) CQOI Day1 :破解D H协议 题目背景: Diffie Hellman密钥交换协议是一种简单有效的密钥交换方法。它可以让通讯双方在没有事先约定密钥(密码) 的情况下,通过不安全的信道(可能被窃听) 建立一个安全的密钥K,用于加密之后的通讯内容
阅读全文
摘要:[TOC] BZOJ1966 VIRUS病毒检测 [题目传送门][1] 题解 一道比较神的$Dp$,首先我们记$f[i][j]$表示模板串匹配到第$i$位,当前病毒串匹配到第$j$位,匹配是否可行。然后我们就可以进行简单的转移了。不过还有带$ $号的情况,所以我们继续记$c[i]$表示第$i$位的$
阅读全文
摘要:[TOC] BZOJ1787 Meet紧急集合 [题目传送门][1] 题解 写起来很简单,但是想想又有点玄的一道题。刚开始想的是用树剖维护他们的路径什么的,后来发现自己就想错了。。我们如果要达到最优的答案,那么就是要最小化重复的路径,对于树上的任意三个点,我们总共只会有1个或者2个的LCA。如果这三
阅读全文
摘要:[TOC] BZOJ3156 防御准备 [题目传送门][1] 题解 这道$Dp$题目也算是比较清真了吧,看到数据范围其实就差不多可以知道是个斜率优化$Dp$了。我们比较容易地可以写出转移方程:$dp[i]=max(dp[j]+\sum_{k=j+1}^{i 1}(i k))+a[i] \Righta
阅读全文
摘要:[TOC] BZOJ1257 余数之和 [题目传送门][1] 题解 有点妙的一题。首先我们需要求的东西是$\sum_{i=1}^{n}k\%i$,然后我们可以对这个公式进行一下转化:$\sum_{i=1}^{n}(k (k/i) i)$,这个还是比较好意会出来的。然后我们把这个公式拆一下:$\sum
阅读全文
摘要:[TOC] BZOJ1879 Bill的挑战 [题目传送门][1] 题解 一看题目以为是道字符串题目,后来发现是个比较简单的状压$Dp$,我们用$g[i][j]$数组表示匹配字符串中能否填字符$j$。然后记$f[i][j]$表示到第$i$位,匹配状态为$j$的时候方案数为多少就行了。转移还是比较简单
阅读全文
摘要:[TOC] BZOJ1811 mea [题目传送门][1] 题解 一道乱搞题目,我们可以设$s[0]$为$x$,然后我们就可以根据$m$数组退出$s$数组关于$x$的表达式,然后由于$s$是非递减的,所以我们可以列$n$个不等式,将这些不等式的解集求交之后就是答案的解集,计算一下个数即可。但是似乎B
阅读全文
摘要:[TOC] BZOJ2190仪仗队 [题目传送门][1] 题解 被机房大佬钦点sibo的一道题目,虽然好像真的并不是特别难。观察一下发现只有横纵坐标$gcd$为1的点才能被看到,而且这个图是对称的,所以相当于是求1到$n 1$的欧拉函数前缀和,然后乘以2加1,就是答案了。 code include
阅读全文
摘要:[TOC] BZOJ3613 南园满地堆轻絮 [题目传送门][1] 题解 ~~这标题怎么那么鬼畜~~一眼可以看出来是二分。二分调整音符的幅度,然后对于每个音符,都尽量让它取符合条件的最小的值,如果仍然无法形成非递减,那么说明当前答案不合法,就增加左区间,反之减小右区间。 code [1]: http
阅读全文
摘要:[TOC] BZOJ1084 最大子矩阵 [题目传送门][1] 题解 由于$m\leq 2$所以我们可以分两种情况讨论。$m=1$的时候就相当于一个数列,就是个很简单的$Dp$了。当$m=2$的时候,记$f[i][j][k]$表示第一列处理到第$i$行,第二列处理到第$j$行,已经选了$k$个子矩阵
阅读全文
摘要:[TOC] BZOJ1036 树的统计Count [题目传送门][1] 题解 一道树剖裸题,拿来练练手。。 code include using namespace std; typedef long long ll; bool Finish_read; templateinline void re
阅读全文
摘要:[TOC] BZOJ1452 Count [题目传送门][1] 题解 看到这题$c$的数据范围之后才发现这题是个水题,开100个二维树状数组记录每个颜色的个数,之后就能做到$log^2n$的询问和修改了。 code include using namespace std; typedef long
阅读全文
摘要:[TOC] BZOJ2242 计算器 [题目传送门][1] 题解 一道比较模板的题目,第一个操作暴力快速幂搞,第二个操作暴力$Exgcd$搞,第三个操作暴力$BSGS$搞。注意判无解的情况就行了。 code include using namespace std; typedef long long
阅读全文
摘要:[TOC] BZOJ2705 Longge的问题 [题目传送门][1] 题解 ~~表示数论题目根本不会~~这题一眼看过去,像是欧拉函数,结果也就是欧拉函数搞一搞,但是之前根本没学过,只能直接套个板子了。我们枚举$N$的每一个约数$X$,那么这个约数对于答案的贡献就是$Euler(N/X) X$。但是
阅读全文
摘要:[TOC] BZOJ1509 逃学的小孩 [题目传送门][1] 题解 比较简单的一道题目,首先由于要构造一个最坏的情况,所以一定会走$A$到$B$这条路,那么$A$和$B$的地点一定是在树直径的两个端点上的。所以我们找出直径的两个端点之后,处理每个点到两个直径端点的距离$d1[i]$和$d2[i]$
阅读全文
摘要:[TOC] BZOJ1965 洗牌 [题目传送门][1] 题解 一道结论题,记数字$i$的位置为$pos[i]$,我们可以打表发现每一个数字在每次洗牌之后的位置是$pos[i] 2$ $Mod$ $(n+1)$,然后我们假设第$K$次洗牌之后排在第$L$位的在原数列上的排
阅读全文
摘要:[TOC] BZOJ4034 树上操作 [题目传送门][1] 题解 裸的树剖,写的时候注意细节即可。 code include using namespace std; typedef long long ll; bool Finish_read; templateinline void read(
阅读全文
摘要:[TOC] BZOJ1066 蜥蜴 [题目传送门][1] 题解 比较裸的一道网络流,我们先进行拆点,对于每一根柱子,从这根柱子的入点向出点连一条流量为这条柱子的高度的边,对于两根能够相互到达的柱子,连一条流量为$inf$的边,然后对于初始有蜥蜴的柱子,从源点向这根柱子连一条流量为1的边,对于所有能够
阅读全文
摘要:[TOC] BZOJ2118 莫莫的等式 [题目传送门][1] 题解 又是比较妙的一道题目,听说这个方法似乎是叫同余类$bfs$?感觉有点像最短路啊。。 问题转化一下,实际上就是一个无限背包的问题了。我们记$T$为$ai$中最小的数,接下来考虑$dis[i]$表示能够构成一个数$Q$,且$Q$ &n
阅读全文
摘要:[TOC] BZOJ2809 dispatching [题目传送门][1] 题解 这道题目的题解很多,但大多都是用左偏树/主席书做的。这里再介绍一个莫队的做法。首先这题的题目就是在树上选定一个点,然后在这个点的子树中选出一些点,使这些点的$\sum c[i]$不超过$M$,求$Li $选中点的个数最
阅读全文
摘要:[TOC] BZOJ1486 最小圈 [题目传送门][1] 题解 二分+找负环。我们二分最小的平均值,每次check的时候,将原图中的每条边都减去这个平均值,然后在图中找是否有负环,如果找到有负环,则说明存在至少一个环使得这个环的平均值小于当前的值,于是就可以减小右边界,反之增大左边界。 code
阅读全文
摘要:[TOC] BZOJ1096 仓库建设 [题目传送门][1] 题解 也是一道比较经典的斜率优化$Dp$,很容易推出DP转移方程: $dp[i]=min(dp[j]+cost(i,j))+c[i]$ 重点就是怎么快速的算出cost(i,j)。我们把cost的计算公式写出来: $cost(i,j)=\s
阅读全文
摘要:[TOC] BZOJ3190 赛车 [题目传送门][1] 题解 这题有点像1007的那道题,我们可以把赛车的速度转化成斜率,把赛车的初始位置转化成与$y$轴的交点,然后就和1007差不多了。不过要注意的是计算两个直线交点的时候,如果交点在$x$轴的负半轴,是不能直接拿来比较的,因为规定了时间为正。
阅读全文
摘要:[TOC] BZOJ1911 特别行动队 [题目传送门][1] 题解 典型的斜率优化$Dp$。首先如果我们记$sum[i]$表示前$i$个士兵的战斗力之和,那么我们比较容易的可以得出$O(n^2)$的$Dp$:$f[i]=max(f[j]+a (sum[i] sum[j])^2+b (sum[i]
阅读全文
摘要:[TOC] BZOJ1202 狡猾的商人 [题目传送门][1] 题解 刚开始看题了之后第一反应就是差分约束,后来发现自己可能已经不怎么会差分约束,就准备放弃这道题目去看题解了,但是看到题解大部分都是并查集,才发现这题可能并不用差分约束(虽然差分约束也是可以做的)。我们用带权并查集维护每一个月收入,记
阅读全文
摘要:[TOC] BZOJ1007 水平可见直线 [题目传送门][1] 题解 经典的单调队列进行维护,先将所有的直线以斜率$A$为第一关键字,以与$y$轴交点高度$B$为第二关键字进行排序。考虑加入一条直线,如果斜率与$A[st[top]]$相同,那么可以直接弹出队首元素(因为肯定会被覆盖掉)。然后判断该
阅读全文
摘要:[TOC] BZOJ2150 部落战争 [题目传送门][1] 题解 对于每个点拆点之后,每个点都向它能够到达的点的入点连边,跑二分图最大匹配,最后所需的军队个数就是总城镇个数减去匹配个数。因为有一对点能够匹配就说明这两个城镇可以由一只军队征服,所以所需军队=总城镇个数 匹配个数。 code incl
阅读全文
摘要:[TOC] BZOJ1015 星球大战starwar [题目传送门][1] 题解 比较经典的离线题目,我们将所有的数据读入之后,从后往前离线处理,用并查集维护就行了。注意一个星球被炸掉了之后,这个星球也会消失(即不算在联通块之内)。 code include using namespace std;
阅读全文
摘要:[TOC] BZOJ1303 中位数图 [题目传送门][1] 题解 有点考验思维的一题。对于这个排列,我们实际上并不需要知道这个排列中每个数的值,实际上我们只需要知道这个数是否比$b$大就行了。所以我们先把所有的数都转化成1或者 1,表示这个数比$b$大或者小。然后记$sum[i]$为修改之后前$i
阅读全文
摘要:[TOC] BZOJ1050 旅行comf [题目传送门][1] 题解 比较妙的一道题。刚开始看到题的时候,感觉可能是两个二分,但是发现这样找到的答案不一定是最优的。然后发现他的边只有5000条,所以我们将边按权值从小到大排序,枚举每一条边,让这条边作为最小的那条边(即只枚举边权比它大的边),跑最小
阅读全文
摘要:[TOC] BZOJ3196 二逼平衡树 [题目传送门][1] 题解 比较经典的一道树套树题目了吧,然而先做了带插入区间第$K$小值之后,这题就比较简单了。外层用线段树,里面套一棵平衡树,这里用了$Splay$。不过需要注意的是,查询排名为$K$的数的时候需要二分,然后到树套树中进行查询排名。这样总
阅读全文
摘要:[TOC] BZOJ1922 大陆争霸 [题目传送门][1] 题解 有点意思的一道题目,相当于是带限制的最短路,我们记$d[i]$表示第$i$个点被几个防御装置保护,$d1[i]$表示如果没有限制的话,到达第$i$个点的时间,$d2[i]$表示实际到达第$i$个点的时间。我们在跑$Dijstra$的
阅读全文
摘要:[TOC] BZOJ1497 最大获利 [题目传送门][1] 题解 比较容易想到的一道网络流。从源点向每一个中转站连一条流量为$Pi$的边,从每个中转站向其对应的消费人群连一条流量为$inf$的边,从每个消费人群向汇点连一条流量为$Ci$的边。然后就转化成了最小割的问题了。由于中间消费人群与中转站的
阅读全文
摘要:[TOC] BZOJ1798 维护序列Seq [题目传送门][1] 题解 比较简单的支持区间加和区间乘的线段树,注意$pushdown$的时候区间加和区间乘的处理即可。 code include using namespace std; typedef long long ll; bool Fini
阅读全文
摘要:[TOC] BZOJ3172 单词 [题目传送门][1] 题解 裸的AC自动机,构造出AC自动机之后,将每一个节点的出现次数都累加到它的$fail$节点上去,最后得到的就是答案了。 code include using namespace std; typedef long long ll; boo
阅读全文
摘要:[TOC] BZOJ3175 攻击装置 [题目传送门][1] 题解 emm...似乎说这个是最大独立集,可能之前并不知道有这个东西。由于攻击装置是攻击日字形的,所以我们可以根据奇偶性构造二分图,跑出二分图的最大匹配之后,用总的点数减去匹配个数就是答案了(因为这所有的匹配中,每一对只能够选择一个)。
阅读全文
摘要:[TOC] BZOJ1191 超级英雄Hero [题目传送门][1] 题解 裸的二分图匹配,直接跑匈牙利即可。 code include using namespace std; typedef long long ll; bool Finish_read; templateinline void
阅读全文
摘要:[TOC] BZOJ1059 矩阵游戏 [题目传送门][1] 题解 刚开始理解错题意了,以为除了主对角线上之外都不能有1.后来发现只要主对角线上可以都是1就是合法的了。实际上的题意就是让你判断$n$行与$n$列是否可以都匹配上,这样就是一个比较简单的二分图匹配,如果第$(i,j)$位置上为1,就说明
阅读全文
摘要:[TOC] BZOJ1083 繁忙的都市 [题目传送门][1] 题解 水题,裸的最小生成树 code include using namespace std; typedef long long ll; bool Finish_read; templateinline void read(T &x)
阅读全文
摘要:[TOC] BZOJ1192 鬼谷子的钱袋 [题目传送门][1] 题解 比较水的题目,只要知道用1、2、4...$2^n$可以组成$[1,2^{n+1})$这个区间里的任意一个数这个结论就行了。 code include using namespace std; typedef long long
阅读全文
摘要:[TOC] BZOJ4240 有趣的家庭菜园 [题目传送门][1] 题解 一个比较好的贪心+树状数组的题目。通过题目我们可以容易地发现我们的目标就是要构造一个数列,使得这个数列是一个单峰数列,并且使得交换的次数最少。实际上交换次数最少就是一个求逆序对的过程,用树状数组就可以简单地解决。而要构造这个单
阅读全文
摘要:[TOC] BZOJ4320 Homework [题目传送门][1] 题解 看了题解之后发现是一个比较妙的分块+离线+并查集的做法。首先我们以30000为界,那么当询问$\leq 30000$的时候,我们就可以开个桶暴力进行查找。如果大于30000,那么我们就枚举30000以内$x$的倍数,然后通过
阅读全文
摘要:[TOC] BZOJ4364 wall砖墙 [题目传送门][1] 题解 一道比较好想的线段树。线段树每个节点维护当前区间的最低高度$Mn$与最高高度$Mx$。然后每次询问的时候记得用父节点的值更新子节点的$Mn$和$Mx$就行了,最后每个叶子节点的$Mx$就是答案了。 code include us
阅读全文
摘要:[TOC] BZOJ4321 queue2 [题目传送门][1] 题解 有点麻烦的$Dp$。首先我们记$Dp[i][j][0...1]$表示枚举到第$i$个 ~~傻叉~~ 沙茶的时候,一共有$j$对个沙茶是不合法,并且第$i$个沙茶与第$i 1$个沙茶是否相邻。然后我们开始分析转移状态: 先从第$i
阅读全文
摘要:[TOC] BZOJ4368 boxes纪念品盒 [题目传送门][1] 题解 一道比较妙的题目。我们发现送纪念品的走法只有三种: 1.往左边走,往左边回 2.往右边走,往右边回 3.绕一圈 然后我们可以简单的证明出来第三种的操作不会多于一次,因为如果多于一次的话,说明纪念品的个数$\geq k$个,
阅读全文
摘要:[TOC] BZOJ4318 OSU! [题目传送门][1] 题解 一道比较简单的期望$Dp$。我们记$f[i]$为到第$i$位时的期望分数,$g[i]$为期望长度,分析一下转移我们可以发现连续1的长度从$x 1$变成$x$时,贡献变化为$f[i]=f[i 1]+(3 g[i−1]^2+3 g[i−
阅读全文
摘要:[TOC] BZOJ4247 挂饰 [题目传送门][1] 题解 一个比较简单的$Dp$,我们可以发现挂饰的总个数只有2000个,所以如果挂钩的个数超过了2000个,就没有意义去记录了。所以我们记$f[i]$表示当前挂钩为$i$个的时候能够到达的最大的贡献是多少。然后将挂饰按挂钩个数从大到小排序,进行
阅读全文
摘要:[TOC] BZOJ4300 绝世好题 [题目传送门][1] 题解 比较简单的$DP$,记$f[i]$表示第$i$位为1,最长的长度为多少。只需要枚举每一个数字,对于这个数字二进制下为1的那一位进行更新就行了。 code include using namespace std; typedef lo
阅读全文
摘要:[TOC] BZOJ1500 维修数列 [题目传送门][1] 题解 一道比较全的平衡树题目,操作比较多,注意一下如果不回收节点的话可能会$MLE$,手写个内存池就行了 code include using namespace std; typedef long long ll; bool Finis
阅读全文
摘要:[TOC] BZOJ2160 拉拉队排练 [题目传送门][1] 题解 比较裸的回文自动机题目。构建出回文自动机之后,就可以把所有回文子串的长度记录下来,然后$sort$一下,选出前$K$个,然后快速幂计算答案就行了。 code include using namespace std; typedef
阅读全文
摘要:[TOC] BZOJ2342[SHOI2011]双倍回文 [题目传送门][1] 题解 其实是manacher的题目,但是也是可以用回文自动机做的。构建出回文自动机之后,就可以在回文数上进行DP,如果一个点代表的回文串的长度为4的倍数,并且存在长度为它一半的后缀,就是一个满足答案的回文串。关键就在于如
阅读全文
摘要:KdTree模板 code: include using namespace std; typedef long long ll; bool Finish_read; templateinline void read(T &x){Finish_read=0;x=0;int f=1;char ch=g
阅读全文
摘要:替罪羊树模板 Code(指针版): Code(数组版): cpp include using namespace std; typedef long long ll; bool Finish_read; templateinline void read(T &x){Finish_read=0;x=0
阅读全文
摘要:回文自动机模板 code: include using namespace std; typedef long long ll; bool Finish_read; templateinline void read(T &x){Finish_read=0;x=0;int f=1;char ch=ge
阅读全文
摘要:主席树模板 code: include using namespace std; typedef long long ll; bool Finish_read; templateinline void read(T &x){Finish_read=0;x=0;int f=1;char ch=getc
阅读全文
摘要:FFT模板 code: include using namespace std; typedef long long ll; bool Finish_read; templateinline void read(T &x){Finish_read=0;x=0;int f=1;char ch=getc
阅读全文
摘要:[TOC] Cqoi2018 Day1 社交网络 题目背景: 当今社会,在社交网络上看朋友的消息已经成为许多人生活的一部分。通常,一个用户在社交网络上发布一条消息(例如微博、状态、Tweet等)后,他的好友们也可以看见这条消息,并可能转发。转发的消息还可以继续被人转发,进而扩散到整个社交网络中。 题
阅读全文
摘要:[TOC] "E. Garlands" 题意: 给出你一个n m矩阵,矩阵中有一些灯泡,这些灯泡连成了k条互不重叠的链。每个灯泡都有一定的权值w,但是只有当灯泡打开的时候,才会产生贡献,刚开始所有的灯泡都是开着的。共有q次询问,有两种操作: ①$Switch$ $i$——表示将编号为i的链所有的灯泡
阅读全文
摘要:[TOC] "NOI2018 Day1 return" 题解 作为NOI Day1 的T1,这道题目还是比较清真的(虽然自己在同步赛的时候只打了70分的部分分,然后数组开小了挂成了55分。。)正解的方法似乎有很多,可持久化并查集什么的都可以做。但个人认为还是Kruskal重构树的方法比较好些,也比较
阅读全文
摘要:[TOC] "NOI2018 Day2 dragon" 题解 开场开了T3之后发现T3根本不可做,于是集中精力刚T1和T2,但是机房猝不及防的断电三次,神TM整整少了半个小时做题时间。T1只码了70分,T2 15分暴力还挂成了10分。 这题的做法还是比较清真的,部分分也很多,打了简单的60分暴力之后
阅读全文
摘要:[TOC] 知识点概要 在各种二叉平衡树中,大多数的平衡树都是通过旋转来维护这棵二叉查找树的性质,并且尽量保证每次的查找的复杂度为$log$的。然而说实话,各种情况的旋转很容易写挂,考场上一旦写挂掉就会心态爆炸,所以我们或许可以通过一些奇妙的方法来使这棵二叉平衡树能够拥有与有需要旋转的二叉查找树同样
阅读全文
摘要:[TOC] "BZOJ3065 带插入区间K小值" 题意 Description 从前有$n$只跳蚤排成一行做早操,每只跳蚤都有自己的一个弹跳力$a[i]$。跳蚤国王看着这些跳蚤国欣欣向荣的情景,感到非常高兴。这时跳蚤国王决定理性愉悦一下,查询区间$k$小值。他每次向它的随从伏特提出这样的问题: 从
阅读全文
摘要:[TOC] 前言 最近刷BZOJ的题目的时候,发现做到了很多题目都是用到了斜率优化,这个优化很早也接触过,但也没有仔细地去学。最近认真的去学了一下,就在这里做个整理 概要 斜率优化是基于单调队列或单调栈的一种优化DP的方式,当DP的决策具有单调性的时候,我们就可以通过维护单调队列或者单调栈来维护这个
阅读全文
摘要:##前言 FFT其实在很早的时候就已经接触到了,但是那个时候学起来有点仙,感觉这东西离实际解题的距离有点远,不如那些其他的数据结构那么直接。但是半年多下来的做题,发现FFT其实应用的十分广泛,并且很多数学题推出公式之后就可以套用FFT进行计算。所以对于FFT的理解也不能仅仅只是停留于背板子的阶段了,
阅读全文
摘要:201808/1458288 20180807123717064 920290696.jpg)
阅读全文

浙公网安备 33010602011771号