数据结构
adolph_jun
这个作者很懒,什么都没留下…
展开
-
最短路归纳
一floyd 求多源、无负权边的最短路,用矩阵记录图松弛每一对点,使得每一对点之间的权值是最小的, 利用三个for循环,时间复杂度O(n^3) void make_floyd() { for (k=0; k for (i=0; i for (j=0; j {原创 2015-10-19 23:59:29 · 421 阅读 · 0 评论 -
树状数组
原文链接 树状数组中用的d【】,每个点都有一定的管辖范围; 如d[1]=a[1]; d[2]=a[1]+a[2]; d[3]=a[3]; d[4]=a[1]+a[2]+a[3]+a[4]; 等等; 这样的结构关键是为了,对一个数组内部动态的删除,增加,来高效的求某个点或者某个区间的值; 比如说对数组a,改变某一位的值需O(1),求某个转载 2015-10-07 11:27:14 · 227 阅读 · 0 评论 -
线段树初学
线段树就是像下图的一种特殊的数,有存储,查询,修改等操作 需要用到 struct Node { int l,r;//存储边界值 int dt;//存储该区间需改变的值的和 int vis;//需要修改的值 Node *leftchild; Node *rightchild; }; 线段树的操作主要分为两种: 1,对单个区间存储数值原创 2015-11-01 00:50:33 · 247 阅读 · 0 评论