学习笔记
CleverLarry
这个作者很懒,什么都没留下…
展开
-
高斯消元——学习笔记
相信大家从小学起就学会了如何解多元一次方程,知道n个n元一次方程是可解的。但随着方程元数的升高,人力已经无法解决这一问题,于是我们需要借助计算机。而计算机解决这一问题的方法,其一就是高斯消元。 假设我们现在需要求解一个n元一次方程: ⎧⎩⎨⎪⎪⎪⎪ a11∗x1+a12∗x2+⋯+a1n∗xn=b1 a21∗x1+a22∗x2+⋯+a2n∗xn=b2 ⋯ ...原创 2018-04-18 10:38:41 · 189 阅读 · 0 评论 -
后缀数组——学习笔记
后缀我们定义在字符串s中,从i一直到末尾的子串为suff[i],即以i为起点的后缀后缀数组用sa来表示,sa[i]表示;排名为i的后缀的开头在sa[i]处(即sa[i]——n这个后缀的排名为i)后缀数组的思想如果我们直接用暴力去求这个数组,很容易想到直接sort所有后缀(O(nlogn)O(nlogn)O(nlogn)),而比较两个字符串的大小的复杂度为O(n)O(n)...原创 2018-04-18 20:12:46 · 123 阅读 · 0 评论 -
平面凸包——学习笔记
什么是平面凸包? 平面凸包(以下简称“凸包”)是指覆盖平面上n个点的最小凸多边形。形象来说就是把n个点看成n根柱子,用橡皮筋去紧框住这n根柱子,最后形成的拉紧的多边形就是要求的凸包。怎么求平面凸包?1.Jarvis算法 首先我们需要了解凸包的数学构造法:找一条直线l过其中一点(记为A)并且其他所有点都在l的同侧,则A必为凸包上的一点。那么我们以A为起点,让直线以A为中心绕着同一...原创 2018-05-08 11:06:30 · 445 阅读 · 0 评论 -
数据结构嵌套——学习笔记
引言 随着我们需要解决的问题越来越复杂,很多时候单一的数据结构已经无法解决问题了,所以我们需要把数据结构嵌套起来。什么是数据结构嵌套 顾名思义,数据结构嵌套就是结合使用两个及以上(一般是两个,否则多的一般用其他的方法来代替)的数据结构。 这样看来其实数据结构嵌套非常简单,没有任何思维难度,只不过代码量有一些大,需要一定的封装,我们通过具体题目介绍不同的数据结构嵌套。线段树套线...原创 2018-06-30 16:10:19 · 4605 阅读 · 0 评论 -
CDQ分治——学习笔记
前言 因为中国集训队的大佬们总会发明一些新的东西,所以中国的计算机竞赛水平才会一直处于国际前沿,而cdq分治也是某一年的集训队成员发明的算法。什么是CDQ分治 cdq分治是一种分治(这不是废话嘛),和一般的分治一样,它先考虑前半部分,再考虑后半部分,再考虑前半部分对后半部分的影响,而cdq分治的精髓就在于处理前半部分对后半部分的影响。例题:陌上花开 经典的三维偏序问题,我们可...原创 2018-06-30 17:03:31 · 3925 阅读 · 0 评论 -
群论(Burnside引理和Polya定理)
群论 群指的是满足以下四个条件的一组元素的集合:(1)封闭性 (2)结合律成立 (3)单位元存在 (4)逆元存在。而在信息学中,我们主要用它来处理计数问题。Burnside引理 因为我们一般只会用Polya,这里就不介绍Burnside了。Polya定理 我们用一个例子来引入:一正方形分成4格,2着色,有多少种方案?其中,经过转动相同的图象算同一方案。 首先经过转动的这个变...原创 2018-06-30 17:53:43 · 2000 阅读 · 2 评论 -
K-d树
前言 K-d树的K其实表示的是数据是几维的,所以我们一般用的都是2-d树。2-d树原理 当数据有两维时,一般都是维护平面上的数据,我们无法想线段树那样一直缩小范围得到想要的区间,但是我们可以通过交错缩小横纵坐标来最终得到想要的平面,这就是2-d树的原理。写法: 例子:简单题 题目大意:动态维护矩形内数字和 和大多数树形结构一样,我们一切操作都需要从根开始,维护当前的点代表...原创 2018-06-30 18:05:03 · 268 阅读 · 0 评论 -
多项式乘法与FFT——学习笔记
前言 这篇博客很长,因为考虑到读者很多都是对FFT的了解除了名字再无其它的大白,所以详细地解释了许多,只要你耐心地把它看完,你一定会对FFT有更深刻的理解。准备工作 首先我们要从泰勒公式说起。 泰勒公式是指若一个函数在x=x0x=x0x=x_0处有n阶导数,我们可以用含这n阶导数和(x−x0)(x−x0)(x-x_0)的多项式来模拟函数在(x−Δx,x+Δx)(其中Δx无限接近于0)...原创 2018-07-04 20:49:27 · 1555 阅读 · 0 评论