上一页 1 ··· 4 5 6 7 8 9 10 下一页
摘要: 使用STL算法离散化:思路:先排序,再删除重复元素,然后就是索引元素离散化后对应的值。假定待离散化的序列为a[n],b[n]是序列a[n]的一个副本,则对应以上三步为: unique()函数是一个去重函数,STL中unique的函数 unique的功能是去除相邻的重复元素(只保留一个),unique 阅读全文
posted @ 2017-04-20 09:34 Bennettz 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 转载自http://blog.csdn.net/pi9nc/article/details/11848327 二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图。准确地说:把一个图的顶点划分为两个不相交集 U 和 V ,使得每一条边都分别连接U 、 V 中的 阅读全文
posted @ 2017-04-19 08:10 Bennettz 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 算法一:暴力枚举 阅读全文
posted @ 2017-04-18 20:22 Bennettz 阅读(742) 评论(0) 推荐(0) 编辑
摘要: 原理:队列+松弛操作 将源点加入队尾,每一步读取队头顶点u,并将队头顶点u出队(记得消除标记);将与点u相连的所有点v进行松弛操作,如果能更新距离(即令d[v]变小),那么就更新,另外,如果点v没有在队列中(打个标记),那么要将点v入队,如果已经在队列中了,那么就不用入队 以此循环,直到队空为止就完 阅读全文
posted @ 2017-04-18 15:27 Bennettz 阅读(508) 评论(0) 推荐(0) 编辑
摘要: ①先取一点v[0]作为起始点,初始化dis[i],d[i]的值为v[0]到其余点v[i]的距离w[0][i],如果直接相邻初始化为权值,否则初始化为无限大; ②将v[0]标记,vis[0] = 1(vis一开始初始化为0); ③找寻与v[0]相邻的最近点v[k],将v[k]点记录下来,v[k]与v[ 阅读全文
posted @ 2017-04-18 11:01 Bennettz 阅读(220) 评论(0) 推荐(0) 编辑
摘要: Floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短路径。从动态规划的角度看问题,我们需要为这个目标重新做一个诠释(这个诠释正是动态规划最富创造力的精华所在) 从任意节点i到任意节点j的最短路径不外乎2种可能,1是直接从i到j,2是从i经过若干个节点 阅读全文
posted @ 2017-04-18 09:17 Bennettz 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 递归的本质是通过栈来保存状态,然后再次调用自己进入新的状态,然后函数返回的时候回到上次保存的状态。 如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在 阅读全文
posted @ 2017-04-18 08:33 Bennettz 阅读(1676) 评论(0) 推荐(0) 编辑
摘要: 定义:将有向图中的顶点以线性方式进行排序。即对于任何连接自顶点u到顶点v的有向边uv,在最后的排序结果中,顶点u总是在顶点v的前面。 前提条件: 必须是有向无环图(可以不连通) 偏序/全序关系: 所谓偏序,就是图中没有环(自己出发不能回到自己) 所谓全序,就是在偏序的基础之上,有向无环图中的任意一对 阅读全文
posted @ 2017-04-17 21:25 Bennettz 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 适用条件&范围: 单源最短路径(从源点s到其它所有顶点v); 有向图&无向图(无向图可以看作(u,v),(v,u)同属于边集E的有向图); 边权可正可负(如有负权回路输出错误提示); 差分约束系统; Bellman-Ford算法寻找单源最短路径的时间复杂度为O(V*E). 首先介绍一下松弛计算。如下 阅读全文
posted @ 2017-04-17 09:19 Bennettz 阅读(190) 评论(0) 推荐(0) 编辑
摘要: O(1)快速乘来自骆可强:《论程序底层优化的一些方法与技巧》 阅读全文
posted @ 2017-04-07 14:43 Bennettz 阅读(1751) 评论(0) 推荐(1) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 下一页