笔记
hhh/
这个作者很懒,什么都没留下…
展开
-
二叉堆
二叉堆本质是完全二叉树,分小根堆和大根堆,顾名思义小根堆顶端最小,大根堆顶端最大。上图便是一个小根堆堆有插入,删除,查询操作。比如要插入0到上面的小根堆,则需要将0与最下端的节点比较如果0比该节点小,则交换位置,直到最顶端或者遇到比0小的节点,则插入完成。如果要删除1的话,则要在1的子节点中找一个较小的交换位置,重复这一步直到1没有子节点,然后将其删除。堆最简单的查询就是查询优先级最低...原创 2020-02-06 18:41:56 · 67 阅读 · 0 评论 -
快速乘
之所以会用到快速乘是因为乘法有时候会溢出,快速乘就是把乘法转化为加法防止溢出。为了降低时间复杂度快速乘要将结果变为二进制乘积的和。LL Quick_mul(LL a,LL b,LL mod) //LL为long long{ LL ans=0; a%=mod; while(b){ if(b&1)ans=(a+ans)%mod; a=...原创 2020-02-06 18:17:02 · 84 阅读 · 0 评论 -
字符串哈希
字符串哈希是将一个字符串对应一个整数,且只有相同的字符串对应的整数相同。这样我们在判断两个字符串是否相同时就可以比较它们所对应的整数是否相同就可以了。首先是哈希算法的公式:定义一个整数数组hash,和一个字符数组a,a数组前i位所组成的字符串所对应的整数为hash[i]=hash[i−1]∗p+a[i]-‘a’+1a数组从l到r所组成的字符串对应的整数为*hash[r-l]=hash[...原创 2020-02-02 19:16:49 · 133 阅读 · 0 评论 -
单调栈
单调栈顾名思义就是一个具有单调性的栈,在栈中有元素的情况下,如果当前入栈元素不满足栈中元素的单调性,则依次从栈顶出栈直到当前入栈元素也满足栈中的单调性。...原创 2020-01-30 20:05:21 · 83 阅读 · 0 评论 -
并查集
并查集并查集是由一群集合构成,最开始时所有元素各自单独构成一个集合。当集合中只有一个元素时,这个集合的代表节点即为该元素,该元素的father也是自己。当一个集合中有多个节点时,下层节点的father为上层节点,最上层节点的father指向自己,最上层的节点叫做这个集合的代表节点。上面这些都是生硬的术语,我们直接讲一个生动形象的题目,方便理解并查集。上面这个题目就可以用并查集做,我们可以有...原创 2020-01-23 22:36:34 · 122 阅读 · 1 评论 -
归并排序求逆序数
归并排序求逆序数首先讲讲归并排序,归并排序是一种稳定的排序,速度仅次于快速排序。归并排序的思路就是把要排序的数组不断的分为两份,当每份数组元素个数为一个时则每一份都是有序的,然后再把两份有序的数组不断归并排序,最后得到完整的有序数组。费话不多说,直接上代码。代码分为两个函数。第一个函数的作用是把两个有序数组排序,第二个函数的作用是不断分割数组,最后调用第一个函数得到完整有序数组。而归并排序求逆...原创 2020-01-23 14:51:59 · 168 阅读 · 1 评论 -
学习总结
总结:这几天我学习了快速幂取模的位运算和一般方法,还学习了尺取法和归并排序求逆序数,完成了这几天的每日一题,写了13个西邮集训第一周的作业题,写了2个队列和栈的问题...原创 2020-01-21 19:53:51 · 1304 阅读 · 0 评论 -
尺取法
尺取法原创 2020-01-18 13:42:42 · 136 阅读 · 0 评论 -
快速幂取模
快速幂取模学习心得:原创 2020-01-15 16:46:27 · 169 阅读 · 1 评论