
数据结构
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 · 439 阅读 · 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 · 248 阅读 · 0 评论 -
线段树初学
线段树就是像下图的一种特殊的数,有存储,查询,修改等操作需要用到struct Node{int l,r;//存储边界值 int dt;//存储该区间需改变的值的和 int vis;//需要修改的值 Node *leftchild;Node *rightchild;}; 线段树的操作主要分为两种: 1,对单个区间存储数值原创 2015-11-01 00:50:33 · 263 阅读 · 0 评论