Balanced Lineup ST表的裸题 ST采用倍增和动态规划的思想解决 RMQ问题 初始化:空间复杂度O(nlogn),时间复杂度O(nlogn) 查询一次 O(1);而且这是常数非常小的O(1),而不是像线段树这种毒瘤数据结构(常数非常大) 最近做一道题,ST表和线段树如果算时间复杂度都能 ...
分类:
其他好文 时间:
2018-08-23 23:10:15
阅读次数:
180
LCA定义为对于一颗树 树上两个点的最近公共祖先 一.Tarjan求LCA(离线方法 https://blog.csdn.net/lw277232240/article/details/77017517 二.倍增法求LCA 可以用来求一棵树上两点之间的最短距离 例题: Gym 101808K 思路题 ...
分类:
其他好文 时间:
2018-08-23 00:39:04
阅读次数:
185
两篇很赞的博文: 后缀数组 最详细讲解 (这一篇代码注释很详细,可以好好研读一番) 知识点 后缀数组 orz后缀数组代码 后缀数组主要实现思想就是倍增法+基数排序,代码难也是因为这两者要同时运用。 如果对基数排序还不懂,可以参考一下这篇博文: 基数排序 今后还是要继续学这个神仙操作,继续加油。 ...
分类:
编程语言 时间:
2018-08-23 00:17:40
阅读次数:
227
题解: 为什么这道题有跑100ms的代码。。。 首先这题可以用倍增floyd 比较慢的就是二分+倍增floyd是n^3log^2n的 可以直接用找lca的思想,做到n^3logn 不太懂floyd的理论 两个矩阵算起来的时候要用新矩阵去更新的 c[i][j]=min(c[i][j],a[i][k]+ ...
分类:
其他好文 时间:
2018-08-17 00:41:21
阅读次数:
143
树上弹飞绵羊,现场树分块没写出来= = 先预处理倍增,新建一个n+1节点,能弹到就建一条边,然后每操作2就cut,然后link,1的答案就是x到n+1的距离, // pragma GCC optimize(2) // pragma GCC optimize(3) // pragma GCC opti ...
分类:
其他好文 时间:
2018-08-14 11:32:15
阅读次数:
157
倍增DP太难啦心情好再回去做 poj1821 先让工匠按s排序,f[i][j]表示枚举到第i个工匠涂了j个木板(注意第j个木板不一定要涂) 那么f[i][j]可以直接继承f[i-1][j]和f[i][j-1] 此外 f[i][j]=max(j-l[i]+1<=k<=s[i]){f[i-1][k-1] ...
分类:
其他好文 时间:
2018-08-13 17:05:31
阅读次数:
160
数组特点:类型同统一,长度固定 集合常用操作 添加 遍历 移除 ArrayList可变长度数组,使用类似于数组 属性:capacity(集合中可以容纳元素的个数,翻倍增长)count(集合中实际存放的元素个数) 方法:add(10) AddRange(ICollection c) Remove()、 ...
分类:
Web程序 时间:
2018-08-13 12:20:47
阅读次数:
184
集合命名空间: using.System.Collections;(非泛型集合) using.System.Collections.Genneric(泛型集合) 常用的集合 1.“类似数组”集合:ArrayList、List<T> 2.“键值对”集合(“哈希表”集合):Hashitable、Dict ...
分类:
Web程序 时间:
2018-08-12 18:49:06
阅读次数:
200
题面欺诈系列... 因为一个点最多只能连到前k个点,所以只有当前的连续k个点的连通情况是对接下来的求解有用的 那么就可以计算k个点的所有连通情况,dfs以下发现k=5的时候有52种。 我们把它们用类似于并查集的方式表达(比如12132代表点1和点3连通,2和5连通,3自己),然后再压缩一下。 但要注 ...
分类:
其他好文 时间:
2018-08-11 21:58:17
阅读次数:
142