小小小草儿的博客哟

追梦,启航

【ACM】每一对顶点的最短路径(Floyd算法)

算法简述 Floyd算法用于求每一对顶点之间的最短路径,3个for循环就可以。时间复杂度O(n^3) 。Floyd算法的基本思想如下:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B。所以,我们假设Dis(AB)为节点A到节点B的最短路径的距离,对...

2017-01-19 21:18:07

阅读数 544

评论数 0

【ACM】带权有向图单源最短路径(Dijkstra算法)

最短路径的第一类问题 求从单个源点到其余各顶点的最短路径。算法简介 给定带权有向图G和源点v0,求从源点v0到G中其余各顶点的最短路径。迪杰斯特拉算法是对有权图进行搜索,但是如果引用于无权图或者是权值相等的图,就是广度优先搜索。(注意是有向图)算法描述 对于网N=(V,E),将N中的顶点分成...

2017-01-18 22:46:23

阅读数 2394

评论数 0

【ACM】堆排序

堆排序的时间复杂度为O(N*logN).二叉堆定义 二叉堆是完全二叉树或者是近似完全二叉树。 二叉堆满足两个特性: 1.父结点的键值总是大于或者等于(小于或者等于)任何一个子结点的键值。 2.每个结点的左子树和右子树都是一个二叉堆(最大堆或者最小堆)。当父结点的键值总是大于或者等于任何一个...

2017-01-17 15:11:16

阅读数 224

评论数 0

【ACM】字典树

字典树,Trie树,是一种树形结构,是一种哈希树的变种,典型功能是用于统计,排序和保存大量的字符串。优点是:利用字符串的公共前缀来节约存储空间,最大限度的减少无谓的字符串的比较。代码模板:#define MAX 26 //定义结点 typedef struct Trie { Trie *ne...

2017-01-14 23:17:07

阅读数 182

评论数 0

【ACM】Point定义

const double eps = 1e-8;//epsilon const double PI = acos(-1.0);struct Point { double x,y; Point(){} // 析构函数 Point(double _x,double _y) ...

2017-01-14 16:35:22

阅读数 211

评论数 0

【ACM】向量的叉乘(求面积)

在直角坐标系,假设i,j,k分别是x轴,y轴,z轴上的单位向量。叉乘积的方向垂直于这两个向量构成的平面,大小表示这两个向量构成的平行四边形的面积。假设OP1=(x1,y1,z1),OP2=(x2,y2,z2),OP1 X OP2 = (y1z2-y2z1)i + (x2z1-x1z2)j + (x...

2017-01-14 15:09:41

阅读数 3798

评论数 0

【C++学习】C++运算符重载

c++中预定义的运算符的操作对象只能是基本数据类型,对于很多的用户自定义类型,也可以进行相似的运算符操作。运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据导致不同类型的行为。 运算符重载的实质就是函数重载。 基本过程:首先要把指定的运算表达式转化为对运算符函数的调用,...

2017-01-02 16:23:49

阅读数 385

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭