![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 59
lazy-sheep
有“痣”不在年高,无“痣”空长百岁。
骄傲使人落后,落后就会失败,失败乃成功之母,所以我要骄傲。
展开
-
【其他】结构技术优化算法--蚁群算法(ant colony optimization)
1遗传基因算法遗传算法(Genetic Algorithms,GA)由J.Holland教授(美国)1975年首先提出,是一种灵感源于达尔文自然进化理论的启发式搜索算法。该算法反映了自然选择的过程,即最适者被选定繁殖,并产生下一代。运算过程为初始化→个体评价→选择运算→交叉运算→变异运算→终止条件判断,运算过程就如物竞天择、适者生存,只有被选择的个体才会把自己的基因传下去。下面就用一个有趣的例子,帮助大家理解。我想让机器人小i画出我的梦中情人(最优解)。小i当然不知道我梦中情人长啥样。小i.原创 2020-12-26 18:17:09 · 2807 阅读 · 1 评论 -
【数论】牛顿迭代法
1.引入/简介五次及以上多项式方程没有根式解(就是没有像二次方程那样的万能公式),这个是被伽罗瓦用群论做出的最著名的结论。但是,没有王屠夫难道非得吃带毛猪?工作生活中还是有诸多求解高次方程的真实需求(比如行星的轨道计算,往往就是涉及到很复杂的高次方程),这日子可怎么过下去啊?没有根式解不意味着方程解不出来,数学家也提供了很多方法,牛顿迭代法就是其中一种。本文介绍如何用牛顿迭代法(Newton's method for finding roots)求方程的近似解,该方法于 17 世纪由牛...原创 2020-12-04 16:15:10 · 17581 阅读 · 1 评论 -
【杂项】悬线法
1.悬线法的用途针对求给定矩阵中满足某条件的极大矩阵,比如“面积最大的长方形、正方形”“周长最长的矩形等等”。可以满足在时间复杂度为O(M*N)的要求,比一般的枚举高效的多,也易于理解。2.悬线法思路悬线法,悬线的定义,就是一条竖线,这条竖线要满足上端点在整个矩形上边界或者是一个障碍点。然后以这条悬线进行左右移动,直到移至障碍点或者是矩阵边界,进而确定这条悬线所在的极大矩阵。也就是说,我们要针对矩阵中每个点进行求极大矩阵的操作,所以我们需要Left[]数组存每个点能到达的最右位置,Right[]原创 2020-11-15 09:39:27 · 679 阅读 · 0 评论 -
【入门】高精度算法
高精度目录高精度1.什么是高精度2.高精度的作用3.高精度读入处理数据4.高精度比较大小5.高精度处理进位与借位6.高精度加法7.高精度减法8.高精度乘法1.高精度乘以单精度2.高精度乘以高精度9.高精度除法1.高精度除以单精度2.高精度除以高精度10.高精度开平方11.高精度开n次方12.高精度小技巧——压位1.高精度压位读入处理2.高精度压位输出处理13.例题1.什么是高精度高精度算法,属于处理大数字的...原创 2020-11-14 21:05:42 · 1038 阅读 · 0 评论 -
【字符串】Trie字典树
Trie字典树例题给出n个字符串,以及m个询问。每次询问读入一个字符串,求该字符串是多少个字符串的前缀每个字符串长度小于10^2,n和m小于10^5。【样例输入】4ananamnamananann3anaamaa【样例输出】214朴素算法:暴力搜索,对于每个询问,把所有的n个字符串搜索一遍,统计答案。时间复杂度大于10^10。显然,这样时间是非常大的。如果要优化时间的话,我们就可以使用字典树。1.什么是字典树?字典树,又叫...原创 2020-11-04 09:23:14 · 300 阅读 · 0 评论 -
【数论】卡特兰数(Catalan数)
递推式该递推关系的解为:原创 2020-11-02 10:44:42 · 1061 阅读 · 0 评论 -
【数论】斯特林公式 ——Stirling公式(取N阶乘近似值)
斯特灵公式是一条用来取n阶乘近似值的数学公式。一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特灵公式十分好用。从图中可以看出,即使在n很小的时候,斯特灵公式的取值已经十分准确。 公式为: 从图中看出,对于足够大的整数n,这两个数互为近似值。更加精确地: 或者 这个公式,以及误差的估计,可以推导如下。我们不直接估计n!,而是考虑它的自然对数: 按一般方法计算N的阶乘,其时间复杂度为O(N): N!= 1...原创 2020-10-24 15:27:06 · 2803 阅读 · 2 评论 -
【数论】范数(norm)
0.范数的定义我们知道距离的定义是一个宽泛的概念,只要满足非负、自反、三角不等式就可以称之为距离。范数是一种强化了的距离概念,它在定义上比距离多了一条数乘的运算法则。有时候为了便于理解,我们可以把范数当作距离来理解。在数学上,范数包括向量范数和矩阵范数,向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小。一种非严密的解释就是,对应向量范数,向量空间中的向量都是有大小的,这个大小如何度量,就是用范数来度量的,不同的范数都可以来度量这个大小,就好比米和尺都可以来度量远近一样;对于矩阵范数,原创 2020-10-10 22:25:59 · 1515 阅读 · 0 评论 -
【入门】十大经典排序算法
目录0.简介1. 冒泡排序2. 选择排序3. 插入排序4. 希尔排序5. 归并排序6. 快速排序7. 堆排序8. 计数排序9. 桶排序10. 基数排序11.结语0.简介排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序。内部排序是数据记录在内存中进行排序。而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排原创 2020-10-10 21:46:17 · 157 阅读 · 0 评论 -
【计算几何】判断一个点是否在多边形内部
注:本文属转载原文链接判断一个点是否在多边形内部 [1] 射线法思路、判断一个点是否在多边形内部 [2] 射线法实现比如说,我就随便涂了一个多边形和一个点,现在我要给出一种通用的方法来判断这个点是不是在多边形内部(别告诉我用肉眼观察……)。首先想到的一个解法是从这个点做一条射线,计算它跟多边形边界的交点个数,如果交点个数为奇数,那么点在多边形内部,否则点在多边形外。这个结论很简单,那它是怎么来的?下面就简单讲解一下。首先,对于平面内任意闭合曲线,我们都可以直观地认为,曲线把平原创 2020-09-26 16:16:38 · 10157 阅读 · 5 评论 -
【规划】状压dp
1.简介将较小的状态压缩成一个数,储存在dp的一维里,方便转移。状压dp有很多不同的形态。其中一种叫轮廓线dp(又称插头dp)原创 2020-08-09 19:55:55 · 434 阅读 · 0 评论 -
【数论】BSGS
1.介绍2.Code#include<cstdio>#define I int#define F(i,a,b) for(I i=a;i<=b;i++)#define M 70921I a,b,p,now,t,x;struct node{I v,c;}h[M+10];I ksm(ll x,I k){ ll sum=1; while(k){ if(k&1) sum=(sum*x)%p; x=(x*x)%p;k&g原创 2020-08-03 21:00:45 · 118 阅读 · 0 评论 -
【数据结构】吉司机线段树
1.前置知识线段树+区间修改操作(懒惰标记)2.吉司机线段树介绍用于解决区间最值操作,如区间max,区间min不只是普通线段树的区间最值它可以在求最值的同时维护区间加法,区间求和等操作其实只需要记一下最值,次最值即可,不必单独为这类操作加个标记数组.对于同时需要取min和取max的题目,不妨先说取min,此时需要对最大值进行操作.假设对区间进行对x取min的操作(大于x的改为x)先说如何修改.当递归到符合修改条件的节点(修改区间包含当前节点,且最大值大于x,次大值小于x)时,直原创 2020-08-03 12:05:22 · 1985 阅读 · 0 评论 -
【数论】狄利克雷卷积
1.定义2.求法对于卷积的第n项可以直接枚举约数,在根号n的时间内计算但是对于狄利克雷卷积的前n项如果一项一项算的话就需要n根号n,但实际上可以优化设x=d,y=i/d分别枚举x,y对于h[x*y]+=f[x]*g[y]即可。时间复杂度O(n log n)CodeF(i,1,n) h[i]=0;F(i,1,n){ F(j,1,n/i) h[i*j]=(h[i*j]+f[i]*g[j]%mod)%mod;}F(i,1,n) printf("%d..原创 2020-08-02 19:42:22 · 1324 阅读 · 0 评论 -
【数论】线性基
所谓线性基,就是线性代数里面的概念。一组线性无关的向量便可以作为一组基底,张起一个线性的向量空间,这个基地又称之为线性基。这个线性基的基底进行线性运算,可以表示向量空间内的所有向量,也即所有向量可以拆成基底的线性组合。在ACM领域,线性基主要用来处理有关异或和的极值问题。根据异或按照二进制数位进行的方式,我们可以把一个数字拆成它的二进制表示形式,而这个二进制形式拆成一位一位...转载 2019-08-22 16:13:50 · 1734 阅读 · 0 评论 -
OI知识结构图
作者:zsjzliziyang QQ:1634151125 转载及修改请注明 本文地址:https://blog.csdn.net/zsjzliziyang/article/details/原创 2018-08-22 15:38:04 · 918 阅读 · 0 评论 -
【数据结构】插入排序
插入排序首先来看一道排序问题: 输入:n个数的一个序列&amp;amp;amp;lt;a1,a2,a3,...an&amp;amp;amp;gt;&amp;amp;amp;lt;a1,a2,a3,...an&amp;amp;amp;gt;。 输出:输入序列的一个排列&amp;amp;amp;lt;a′1,a′2,a′3,...,a′n&amp;amp;amp;gt;&amp;amp;amp原创 2018-08-21 16:27:14 · 749 阅读 · 0 评论 -
【数据结构】线段树
线段树未完待续…作者:zsjzliziyang QQ:1634151125 转载及修改请注明 本文地址:https://blog.csdn.net/zsjzliziyang/article/details/原创 2018-08-21 21:48:25 · 217 阅读 · 0 评论 -
【技巧与思想】二分
二分目录二分1.什么是二分?2.二分的作用3.二分的实现4.二分的要求5.二分的时间复杂度6.对于上面那道题目Code7.一般二分Code1.什么是二分?二分,是二分查找的简称,又叫折半查找,是一种用于快速查找的工具,也可以说是一种技巧与思想。2.二分的作用也许你以前玩过一个游戏,就是一个人在心中想一个数,规定这个数大于0并且小于100,然...原创 2018-08-24 18:42:37 · 500 阅读 · 0 评论 -
【数论】线性筛 [约数个数/约数和]
刚才手动推了一下 用线性筛筛约数个数和约数和,就顺便写篇博客记录一下。不过网上应该也有不少人推过了。根据算术基本定理我们可以知道,每一个大于等于2的正整数,都可以被分解成这种形式。,其中 p 为素数。线性筛就是每一次被最小素因子给筛出。线性筛写法 (只筛素数) [我个人比较常用]const int N=1e5+5;bool mark[N];int prim[N];...转载 2019-08-18 20:31:03 · 283 阅读 · 0 评论 -
浅谈一类积性函数的前缀和
写在前面笔者在刷题过程中遇到一些求积性函数前缀和的问题,其中有一类问题需要在低于线性时间复杂度的算法,今天就来浅析一下这类问题的求解方法,当作以后讲课使用的讲义。若之后有了新的研究,再来继续完善这篇文章。本文会随时更新内容,建议以链接形式转载,或者与笔者保持联系。爬虫转载不标明出处必究。前置技能积性函数的定义若f(n)f(n)的定义域为正整数域,值域为复数,即f:Z+→Cf:Z+→C...转载 2019-08-18 20:47:07 · 299 阅读 · 0 评论 -
【图论】差分约束和最短路
一、引例1、一类不等式组的解给定n个变量和m个不等式,每个不等式形如 x[i] - x[j] <= a[k] (0 <= i, j < n, 0 <= k < m, a[k]已知),求 x[n-1] - x[0] 的最大值。例如当n = 4,m = 5,不等式组如图一-1-1所示的情况,求x3 - x0的最大值。图一-1-1...原创 2019-08-14 20:39:58 · 290 阅读 · 0 评论 -
【数论】Miller_Rabin算法
由费马小定理:若p是质数,p不整除于a,则猜想:若p不整除于a,且,则p是质数显然不一定成立,但多试几个a,好像还挺准的?于是我们可以得出一个伪Miller_Rabin算法对于a={2、3、5、7、11、13、17、19、23、31、101}若都满足或,且则p是质数。实测证明,这种算法在10^18以内不会被卡。但是严谨的我们并不能满足于此,如...原创 2019-08-19 21:32:09 · 182 阅读 · 0 评论 -
【数论】基础数论概念
基础数论概念首先我们来回顾一下基础数论中关于整数集Z={…,-2,-1,0,1,2,…}和自然数集N={0,1,2,3,4,…}的一些概念。整除性与约数一个整数可以被另一个整数整除是数论中的一个关键概念。符号 d|ad|ad|a(读作“d整除a”)的含义是,存在摸个数k,使得a=kd。任何整数均可整除0。如果a&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;0且d|a,那么|d|&amp;amp;amp;amp;amp;原创 2018-07-30 14:21:55 · 2494 阅读 · 1 评论