偏序集 偏序关系 首先回顾一下偏序,集合X上的偏序是一个自反、反对称且传递的关系 如果对于X中所有的x,都有x R x,则R是自反的 如果对于X中所有x和y,若x R y和y R x同时成立则x=y,则R是反对称的 对于X中所有的x,y和z,只要x R y且y R z,就有x R z,则R是传递的 通常用≤\le≤取代R来表示偏序关系,常见的偏序关系有集合的包含,小于等于,整除等。<<&l 2018-08-29 算法学习 #偏序
类欧几里得算法 推导 有时候需要快速计算如下式子(比如数据范围都是 10910^9109 ) f(a,b,c,n)=∑i=0n⌊ai+bc⌋f(a,b,c,n)=\sum_{i=0}^{n}\lfloor\frac{ai+b}{c}\rfloor f(a,b,c,n)=i=0∑n⌊cai+b⌋ g(a,b,c,n)=∑i=0ni⌊ai+bc⌋g(a,b,c,n)=\sum_{i=0}^{n}i\lfloor\ 2018-08-28 算法学习 #math
诗词两首 西江月 瑟瑟微风夜半,潇潇细雨黎明。雄鸡一唱与谁听?几度茫然光景。 壮志还须努力,何时乡返功成。椟中美玉尚无名,待得他人相赠。 七绝·四季 漫漫冰霜眼底收, 西风萧瑟欲何求。 独怜明媚绝非夏, 四季如春花满楼。 第一首是词的作业,第二首是诗词格律与写作期末题,这学期另作了一首五古,质量不高,就不放出来了=、= 关于诗词创作就到这里了(撒花) 2018-06-22 个人随笔 #诗词
多维快速傅里叶变换 以下内容摘自《算法导论》思考题30-3 我们可以将一维离散傅里叶变换推广到d维上,这时输入是一个d维的数组A=(aj1,j2,…,jd)A=(a_{j_1,j_2,\dots,j_d})A=(aj1,j2,…,jd),维数分别为n1,n2,…,ndn_1,n_2,\dots,n_dn1,n2,…,nd,其中n1n2…nd=nn_1n_2\dots n_d=nn1n2…nd=n。 2018-05-21 算法学习 #fft
快速傅里叶变换学习笔记 一、写在前面 最近数字图像处理课正在学快速傅里叶变换,发现自己对此理解的还不是很到位。于是借此机会,对照着《算法导论》,对这部分内容啃一啃。 两个nnn次多项式相加的最直接方法所需的时间是O(n)O(n)O(n),但是相乘的最直接方法所需的时间为O(n2)O(n^2)O(n2)。用快速傅里叶变换(Fast Fourier Transform,FFT)可以使多项式相乘的时间复杂度降低为O(nlogn 2018-05-09 算法学习 #fft
莫队算法总结 写在前面 莫队算法用于离线解决一类区间问题。 普通莫队 如果我们已知查询为区间[l,r][l,r][l,r]的答案,并且能在O(1)O(1)O(1)的时间内通过添加或删除一个元素得到[l−1,r],[l+1,r],[l,r−1],[l,r+1][l-1,r],[l+1,r],[l,r-1],[l,r+1][l−1,r],[l+1,r],[l,r−1],[l,r+1]的答案,那么就可以考虑使用莫队 2018-05-03 算法学习 #莫队算法
正则表达式 写在前面 写这篇文章的初衷是解决一些简单的字符串模拟题目,对于特定的某些题目,有时候用C++11的正则表达式会方便很多。 本文主要总结一下常见的一些正则表达式写法,以及如何使用C++11的regex库,最后以几个具体题目举例。 总的来说,正则表达式最简单的应用是判断一个字符串中是否包含特定字符串。正则表达式是一种文本模式,由普通字符和元字符组成。 常用的元字符 . 匹配除 \n 之外的任何单个 2018-04-25 算法学习 #regex
树链剖分 简单回顾一下树链剖分(以下摘自2009年漆子超的论文《分治算法在树的路径问题中的应用 》): 定义: 将树中的边分为两类:轻边和重边。 记Size(U)Size(U)Size(U)表示以UUU为根的子树的结点个数。 令VVV为UUU的儿子中Size(V)Size(V)Size(V)最大的一个,那么我们称边(U,V)(U,V)(U,V)为重边,其余边为轻边。 我们称某条路径为重路径,当且仅当它全 2018-04-24 算法学习 #树链剖分