"题面" "代码" $dfs$一遍,记录每个点的编号和它子树中点的最大编号。树上问题转化为区间问题后,单点修改区间查询用树状数组维护。 $O(nlogm)$ ...
分类:
其他好文 时间:
2019-10-12 20:40:15
阅读次数:
72
现象说明:老数据库版本是5.6,新库版本5.7,数据量不大,备份恢复数据均正常,配置主从使用gtid复制后也是正常的,第二天查看新库的时候,发现新库复制出现问题,报错如下: an important reverse pair if i < j and nums[i] > 2*nums[j ...
分类:
其他好文 时间:
2019-10-05 10:29:35
阅读次数:
80
题意:有一棵树,树上每个结点上有一个字母,有两种操作: 1)询问树上两点u,v间有向路径上有多少个字母和某个固定的字符串相匹配 2)将结点u的字母修改为x 树剖+线段,暴力维护前缀和后缀哈希值(正反都要维护)以及区间内匹配的个数,合并两区间时判断一下跨过分界点的情况就行了。由于被匹配的字符串长度不超 ...
分类:
其他好文 时间:
2019-10-04 20:42:26
阅读次数:
80
看了一下网上基本都是线段树二分的题解,然而我想到一种整体二分的思路,正好练习一下。 是道好题。 首先用树上ST表处理,用于求LCA。 考虑整体二分离线求解。 一种方法是用树链剖分的,复杂度是$O(log^2n)$的,在套上个整体二分,复杂度达到了$O(nlog^3n)$所以说不可以直接树剖暴力。 可 ...
分类:
其他好文 时间:
2019-10-03 20:01:54
阅读次数:
84
T1: 对于同一种选取方案,在时间上是单调的。 如果单调下降,那么该方案的最优点在0,反之可以二分位置。 现在我们需要求得在某个时间上的前m小值,用nth_element即可。 时间复杂度$O(nlog\max(ans))$。 T2: 每条路径的意义就是两端的点权之和。 我们可以折叠所有点到根节点的 ...
分类:
其他好文 时间:
2019-10-03 14:22:07
阅读次数:
99
交换排序的基本思想是两两比较待排序元素的关键字,发现这两个元素的次序相反时即进行交换,直到没有反序的元素为止。本次介绍两种交换排序,即冒泡排序和快速排序。 1 冒泡排序 1. 1 算法步骤 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后 ...
分类:
编程语言 时间:
2019-10-01 21:02:43
阅读次数:
71
你发现每一次有意义的取模至少会把一个数减半. 所以如果没有赋值操作,每个数最多减半 $log$ 次,复杂度就是 $O(nlog^2n)$ 的. 现在考虑赋值:依次最多只会增加 $O(logn)$ 的时间复杂度,所以复杂度还是 $O(nlog^2n)$ 的. code: ...
分类:
其他好文 时间:
2019-09-30 19:42:42
阅读次数:
63