摘要:
题目描述 维护一个集合,集合中的元素与点u的最短距离已经确定,求出集合内元素所能到达的点到点u的距离,取最短的距离对应的点加入集合直到集合包含点v。 每次更新距离只与新加入集合的点有关。#include #include #include #define N 1005 unsigned w[N][N]; int main(){ memset(w, -1, sizeof(w));... 阅读全文
posted @ 2015-05-31 23:34
xblade
阅读(216)
评论(0)
推荐(0)
摘要:
题目描述 之前提到过,线段树之所以更新查询快,是因为区间更新有lazy标记使得不需要每次都操作到叶子节点。 但是如果要操作一个节点时,其父节点上的lazy标记应当被释放,否则该节点无法得到最新的正确结果。 因而lazy标记下放的策略是在需要操作某个节点的子节点时,将该节点的lazy标记全部下放。见第69行。 同时应当注意,给某个节点增加lazy标记时,不要忘了修改该节点的相关统计值。因为更新完该节... 阅读全文
posted @ 2015-05-31 21:57
xblade
阅读(506)
评论(0)
推荐(0)
摘要:
题目描述 区间覆盖问题,区间绝对位置并不重要,重要的是各个更新的区间段之间的相对位置关系。 举例而言,离散化将区间更新[1,100], [2, 50]更换为区间更新[1,4], [2,3]。 离散化可以将空间复杂度从O(L)降到O(N),进而也降低了更新和查询操作的复杂度。 用一个map来记录绝对位置与相对位置间的映射。 需要注意的是,离散化的线段树的叶子节点是[i, i+1]而不是[i, i],... 阅读全文
posted @ 2015-05-31 11:32
xblade
阅读(189)
评论(0)
推荐(0)


浙公网安备 33010602011771号