随笔分类 -  数据结构 - 树状数组

摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4372 本以为和 bzoj3730 一样,可以直接双倍经验了; 但要注意一下,树状数组不能查询0位置,所以再开一个 w 数组记录; 论 if 和 continue 的不同...如果要用到两个值, 阅读全文
posted @ 2018-12-27 21:34 Zinn 阅读(158) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3730 建点分树,每个点记两个树状数组,存它作为重心管辖的范围内,所有点到它的距离情况和到它在点分树上的父亲的距离情况; 于是算的时候可以减去重复的,就是跳到父亲之前把自己会被重复统计的部分减去 阅读全文
posted @ 2018-12-27 18:03 Zinn 阅读(154) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3779 RELEASE操作可以对应LCT的 access,RECENTER则是 makeroot; 考虑颜色数,把一条实边变成虚边,子树+1,虚变实子树-1; 但有换根操作,怎么维护子树? 也可 阅读全文
posted @ 2018-12-15 23:14 Zinn 阅读(316) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P2038 大水题暴露出我的愚蠢。 用二维树状数组,然而居然忘了它应该那样写,调了一个小时; 正方形可以超出外面,只要中心在里面即可。 代码如下: 阅读全文
posted @ 2018-09-13 18:32 Zinn 阅读(202) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2743 和 HH的项链 那道题很像,也是类似的做法; 但不同的是这里的点只有有前驱时才起作用; 自己的思路还是不清晰,总想着遍历到的这个点如何如何... 其实跟这个点无关,只关注它的前驱,给前驱 阅读全文
posted @ 2018-06-14 20:23 Zinn 阅读(165) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1527 整体二分,先把所有询问都存下来; 然后二分一个值,小于它的加到二维树状数组的前缀和里,判断一遍所有询问,就分出了这些询问的答案是否大于这个值; 然后分组递归下去求解即可; 注意加二维树状数组的那个nw是全局 阅读全文
posted @ 2018-06-12 17:03 Zinn 阅读(329) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1878 离线树状数组,巧妙的思路呢; 给每种项链记录一个最后出现的位置lst,根据项链最后出现是否在区间内来计算种类数; 于是就用树状数组求前缀和来得到结果。 代码如下: 阅读全文
posted @ 2018-06-11 12:12 Zinn 阅读(169) 评论(0) 推荐(0)