上一页 1 ··· 5 6 7 8 9
摘要: 前言 $Master$定理,又称主定理,用于程序的时间复杂度计算,核心思想是分治,近几年$Noip$常考时间复杂度的题目,都需要主定理进行运算。 前置 我们常见的程序时间复杂度有: $O(n)/O(n^2)/O(nlog_2n)/O(2^n)$等等... 我们叫它程序的渐进时间复杂度,例如一段程序执 阅读全文
posted @ 2018-10-15 20:51 water_mi 阅读(7539) 评论(2) 推荐(1) 编辑
摘要: ​ 这是一道$Kruskal$重构树的板子题,因为$Kruskal$重构树满足两节点的在原树上路径上边最大/小值为这两个点在重构树上的$LCA$的点权 cpp include include using std::swap; using std::sort; typedef long long ll 阅读全文
posted @ 2018-10-15 20:21 water_mi 阅读(159) 评论(0) 推荐(0) 编辑
摘要: $KMP$问题的核心在于数组$next$(或者$pre$/$fail$,各种叫法),几乎所有的此类型题都是需要计算$next$的。 这里解释一波$next$:即满足字符子串$s[1...k]=s[j k+1...j]$的最大$k$。比如说: 字符串$abaca$的$next[5]$就是$1$,因为只 阅读全文
posted @ 2018-09-22 19:08 water_mi 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 1.题目描述 Luogu-P3629 Bzoj-1912 2.分析 1.对于原图,我们可以知道,若要回到节点1,每一条边至少经过两次(来一次,去一次),所以此时$ans=(n-1)*2$ 2.不妨设$L_1$为第一条路径长,$L_2$为第二条路径长,当$k=1$时,从贪心的角度来考虑,肯定是要将距离 阅读全文
posted @ 2018-07-25 14:48 water_mi 阅读(270) 评论(2) 推荐(0) 编辑
摘要: 1.前言 首先我们介绍的算法是LCA问题中的离线算法-Tarjan算法,该算法采用DFS+并查集,再看此算法之前首先你得知道并查集(尽管我相信你如果知道这个的话肯定是知道并查集的),Tarjan算法的优点在于相对稳定,时间复杂度也比较居中,也很容易理解(个人认为)。 2.思想 下面详细介绍一下Tar 阅读全文
posted @ 2017-12-02 17:09 water_mi 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 分数线终于出了,于是大胆地写下了这篇博文。 提高组Day1: T1: 打开PDF就感觉到一股骚气,不忘初心什么鬼啊??T1是数论??好一个不忘初心... 看一下样例1:3 7;11 莫不是3*7-10? 信心满满地敲了这个答案.. 然后看样例2,好象不对?嗯...10=3+7...莫不是n*m-(n 阅读全文
posted @ 2017-11-30 23:12 water_mi 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 1.前言 最近公共祖先(Least Common Ancestors),简称LCA,是由Tarjan教授(对,又是他)提出的一种在有根树中,找出某两个结点u和v最近的公共祖先问题。 2.什么是最近公共祖先? 在一棵树中,每个结点都有他的父亲和祖先,而最近公共祖先就是两个节点在这棵树上深度最大的公共的 阅读全文
posted @ 2017-11-02 21:20 water_mi 阅读(591) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9