
数据结构
Leo__pcode001
狮子天蝎黑曼巴CP3JOSE
展开
-
倍增法求解LCA 【Leo_Jose】
文章目录前置知识倍增法算法思路倍增法求LCALCA引入前置知识没啥,倍增和LCA的定义这里会有介绍的倍增法算法思路假设有一个小白兔,想从第0个格子跳到第23个格子,它可以一次性跳到任意一个格子中,但它不知道终点再哪个格子,不过它能够判断它是在终点的前方还是后方还是正好在终点。因为它不知道终点在哪里,漫无目的地跳肯定是不行的,要想保险只能一格一格地走,但是这样子O(n)O(n)O(n)的时间复杂度又太浪费时间了。考虑倍增:让小白兔每次只能跳刚好2n2^n2n个格子,然后用以下的方式跳它先尝试原创 2020-07-29 16:36:35 · 216 阅读 · 0 评论 -
树状数组【Leo_Jose】
文章目录前置知识解决问题算法详解生成树状数组的规则用计算机的思考方式来生成树状数组末尾0个数快速相加前缀和主程序练习题前置知识位运算(在学习这个算法之前,请务必熟练掌握位运算)前缀和(利用了前缀和的思想,需要掌握前缀和思想)解决问题除主席树以外几乎所有问题都能够用树状数组解决,不过十分麻烦树状数组模板所解决的问题如下:给出一个n个数的数组和m次操作每次操作可以将数组中的某个元素加上一个值或者需要你输出某个区间的元素之和在这里用LGOJ3374 【模板】树状数组1来作为题面算法详解原创 2020-07-24 10:13:02 · 167 阅读 · 0 评论 -
AC自动机【Leo_Jose】
文章目录前置知识解决问题算法思路详细描述构造字典树构造失配指针字符串匹配代码解释练习题备注前置知识Trie 字典树(必须熟练掌握才能继续往下看)同时安利一下自己的博客KMP(不大必要,不会KMP也可以会AC自动机,AC自动机只是借鉴了KMP的思路而已)解决问题给出一个长文章,一堆单词,看每个单词在文章中分别出现几次算法思路首先给这些待查找的字符串建立一个Trie然后给这个Trie建立一些fail 指针,然后再匹配失败的时候沿着fail指针查找就行了详细描述构造字典树给定5个单词 sa原创 2020-07-23 18:17:04 · 281 阅读 · 0 评论 -
单调队列【Leo_Jose】
文章目录前置知识简介算法思想代码解释前置知识队列简介在一系列入队和出队的操作中,保持着单调性的队列算法思想有10个人在排队打饭,每一个单位时间内就有一个人能够领取到自己的饭每一个人都有自己的武力值,从前往后分别为:9 8 2 1现在来了一个武力值为6的人他不想好好排队,但是直接从队首插入肯定会让人群起而攻之,他决定选择从队尾开始一个个地找人干架队尾最后一个人武力值是1,他把这个人打飞了然后是一个武力值为2的人,他把这个人打飞了紧跟着看到了一个武力值为8的狠人,他不敢招惹,乖乖地跟在了原创 2020-07-23 14:49:56 · 124 阅读 · 0 评论