上一页 1 2 3 4 5 6 7 8 ··· 32 下一页
摘要: 地址:https://www.acwing.com/problem/content/141/ 解析: 1:在假设完全无差错的情况下,不同子串对应不同哈希值。 对于abcba,那么ab的哈希值应该等于ba的反转哈希值。 也就是说,根据一个字符串,迅速求出它的逆序字符串的反哈希值,如果两者相等,则两者为 阅读全文
posted @ 2020-11-12 19:03 liyexin 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 地址:https://www.acwing.com/problem/content/843/ 关于字符串哈希: 进制哈希。即把每个字符串按进制得出对应的数字。根据y总的模板,进制P取131可以很好地降低冲突概率 假设不出现冲突,那么每个子串,唯一对应一个P进制的哈希值。 先前缀处理一下所有前缀的哈希 阅读全文
posted @ 2020-11-11 20:02 liyexin 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 地址:https://www.acwing.com/problem/content/842/ 解析: 关于MOD:一般要取质数 ,要离2的整次幂尽可能远,降低冲突概率,这里取1e5+3 对一个数取模后,如何处理冲突?这里就用到了链表,链表里只有一个头节点,而这里有很多头节点,h[] 每个结点,对应着 阅读全文
posted @ 2020-11-10 19:58 liyexin 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 地址:https://www.acwing.com/problem/content/828/ 我的单链表笔记:https://www.cnblogs.com/liyexin/p/13954747.html 基本板子,只是这里注意一下,因为我这里的idx是从0开始,所以对题中的k来讲,k-1才行 #i 阅读全文
posted @ 2020-11-10 17:02 liyexin 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 一:定义 是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。 二:数组模拟链表 定义: idx:存储当前已经用到 阅读全文
posted @ 2020-11-10 16:59 liyexin 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 地址:https://www.acwing.com/problem/content/156/ 这题和POJ2823是一样的 解析: 暴力,直接对于每k个都遍历一遍,很显然复杂度O(nk)的话行不通。 对于这类问题,有一个比较一致的思路,就是有些数字是无用的,或者用了几次后就要被扔掉的,后续根本就排不 阅读全文
posted @ 2020-11-09 19:25 liyexin 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 地址:https://www.acwing.com/problem/content/602/ 既然是离自己最近,可以想到栈 对于当前数,把它左边数的视为栈。 每次ai与栈顶比较, 如果发现栈顶<ai,说明它可以被栈顶仰视,记录下标。同时清掉栈顶。为什么要清掉呢?因为题目要求的是找最近,既然栈顶已经找 阅读全文
posted @ 2020-11-08 21:37 liyexin 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 地址:https://www.acwing.com/problem/content/83 没买课的话,应该是看不到题的,所以截个图。 暴力的做法,是对当前的每一个数,都往左遍历一遍。每次都一个不落地遍历,其实很多是无用功,很多数字在后续已经用不到了。 给个图示: 可以发现,对于当前的ai,它前面大于 阅读全文
posted @ 2020-11-08 21:21 liyexin 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 一:关于队列 (1)一种线性表 (2)允许在表的一端插入数据,在另一端删除元素。插入元素的这一端称之为队尾。删除元素的这一端为队首 (3)先进先出,就像排队一样 二:操作: 定义q[],hh队头,tt队尾 (1)插入 q[++tt]=x (2)弹出队头 hh++ (3)判断空 if(hh<=tt)为 阅读全文
posted @ 2020-11-07 21:07 liyexin 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 一:关于栈 (1)是一种线性存储结构 (2)限定只能在栈顶进行插入和删除操作。 (3)栈顶与栈底:允许元素插入与删除的一端称为栈顶,另一端称为栈底。 (4)先进后出,就像一个桶,往里放东西,最后放的肯定先被拿走 二:操作 定义st[],tt表示栈顶下标 (1)插入 st[+tt]=x (2)弹出栈顶 阅读全文
posted @ 2020-11-07 21:01 liyexin 阅读(119) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 32 下一页