随笔分类 -  algorithm

信息熵
摘要:感性认识: 熵,即混乱程度,越大表示信息越不确定,越小越确定,如太阳东边升起,对于知道这个信息的人来说,信息熵是0; 计算公式: H = ∑ p(x) log (1/p(x)),p(x)是概率 通俗解释: 0、单位都是比较出来的,如3kg,是和1kg比较才出来的,所以先定义最基本的不确定性作为标准 阅读全文

posted @ 2020-04-22 17:40 willaty 阅读(1976) 评论(0) 推荐(0)

斐波那契数列递归的时间复杂度
摘要:f(n)=f(n 1)+f(n 2) 二阶常系数差分方程,解得: 当n趋于无穷大,后面的加数趋于0,则约等于O(1.618^n),即如O(2^n)级别 其实可以树状展开看下,顶层是f(n),之后每层翻倍,则所有子节点的和约为2^n级别,但不会满二叉,所以比这小点。 阅读全文

posted @ 2019-08-22 21:02 willaty 阅读(3301) 评论(0) 推荐(2)

网络流基础-最大流最小割定理
摘要:最大流最小割定理,指网络流的最大流等于其最小割。 最大流指符合三个性质的前提下,从S到T能流过的最大流量。 最小割指符合割的定义,最小的割容量。 求最大流: 不断寻找增广路,计算能增加的最小流量,然后增加。 找到一条增光路,最多能流过2,则: 找到第二条路径: 最后还剩a-c-e一条,则可计算出最大 阅读全文

posted @ 2018-08-09 00:33 willaty 阅读(7847) 评论(0) 推荐(0)

网络流基础-基本概念
摘要:网络流是一个有向图,其中有两个特殊点源点S和汇点T,每条边有容量c(权值),实际的流量f比容量c小。 三个性质: 容量限制:流量必定小于等于容量。F(x, y) <= F(y, x) 流量守恒:每个节点的总流入等于总流出。Σ F<v,x> = Σ F<x,u> 斜对称性:从a流向b为x,则从b流向a 阅读全文

posted @ 2018-08-08 23:18 willaty 阅读(403) 评论(0) 推荐(0)

单源最短路:Dijkstra算法 及 关于负权的讨论
摘要:描述: 对于图(有向无向都适用),求某一点到其他任一点的最短路径(不能有负权边)。 操作: 1. 初始化: 一个节点大小的数组dist[n] 源点的距离初始化为0,与源点直接相连的初始化为其权重,其他为无穷大(INT32_MAX等)。 标记源点,其到自身距离是0,已经是最小了。 2. 计算 对于di 阅读全文

posted @ 2018-01-09 11:24 willaty 阅读(6006) 评论(1) 推荐(0)

单源最短路:Bellman-Ford算法 及 证明
摘要:描述: 求图中某一点到其他任一点的最短距离。 操作: 1. 初始化 结果保存在一个dist数组里,源点的结果初始化为0,其他初始化为无穷大(如INT32_MAX)。 2. 计算: 两重for循环,第一层,迭代n - 1次(n为节点数); 第二层,遍历每条边,如果其源点对应的距离加上边权重小于终点对应 阅读全文

posted @ 2018-01-08 17:44 willaty 阅读(2313) 评论(1) 推荐(1)

图的表示法:邻接矩阵,邻接表,前向星
摘要:下面将介绍几种常用表示法:邻接矩阵,邻接表,前向星。以下图为例子: 邻接矩阵: 基础 0 1 1 0 0 1 0 0 0 可以用二维矩阵实现,意义: 第一行表示第一点,第一行也表示第一点,没有连接,为0; 第一行第二列,表示第一点到第二点,有连接,为1; 第三行,第三点,未连接到任何点,全是0; 扩 阅读全文

posted @ 2018-01-05 00:14 willaty 阅读(995) 评论(0) 推荐(0)

strcmp函数
摘要:int strcmp(const char *str1,const char *str2) { /*不可用while(*str1++==*str2++)来比较,当不相等时仍会执行一次++, return返回的比较值实际上是下一个字符。应将++放到循环体中进行。*/ while(*str1 == *str2) { if(*str1 == '\0') ... 阅读全文

posted @ 2017-12-11 13:25 willaty 阅读(170) 评论(0) 推荐(0)

strcpy函数;memcpy函数;memmove函数
摘要:strcpy函数实现: char* strcpy(char* des,const char* source) { char* r=des; assert((des != NULL) && (source != NULL)); while((*des++ = *source++)!='\0') ; / 阅读全文

posted @ 2017-12-11 13:24 willaty 阅读(227) 评论(0) 推荐(0)

一些做题原则
摘要:获取输入,计算,输出.不做多余的事情,清楚格式. 每行输出以换行符结束,包括最后一行. 解决问题用最直接的,不要炫技.(KISS,keep it simple and stupid) floor(x),取不大于x的最大整数,floor(x+0.5)四舍五入. 常用: floor(sqrt(n)+0. 阅读全文

posted @ 2017-12-11 12:58 willaty 阅读(151) 评论(0) 推荐(0)

导航