
DFS序列
aozil_yang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ICPCCamp2017 Day 5 E HDRF(DFS序列 + 线段树 + 离散化)
大体题意:给你一颗树,ri 为以当前结点为根的最小子树上的权值(单点),每个点有固定的权值vi,每个点的权值都不一样,每次你必须优先访问ri最小的,然后删掉,然后重新计算ri,求这个删除点的路径?思路:比赛中只想到了用dp 记录某个点的最小权值,然后一直跳下去,然后在回来更新dp这样肯定是超时的。因为回来更新太慢了。其实没必要用dp记录最小权值。直接给这棵树 进行dfs序列原创 2017-02-17 17:33:44 · 492 阅读 · 0 评论 -
HDU 3974 Assign the task(dfs序 + 线段树区间赋值,单点查询)
题意:给一棵树, C x 操作 查询x 节点的权值, T X Y, 将X 这课子树上所有节点权值都赋值为Y。思路:因为是子树所有节点。直接dfs序跑一遍, 将所有节点变成连续的, 然后就可以用线段树了。剩下的就是 线段树区间赋值,单点查询问题了。#include #include #include #include using namespace std;co原创 2017-06-07 21:31:48 · 502 阅读 · 0 评论 -
CodeForces - 384E Propagating tree(DFS序 + 二分 + 线段树)
题意:给你一棵树, 两种操作:1. 将结点x 所有后代进行加和val, x 结点加 val ,x 孩子 加(-val) x 孩子的孩子加 -(-val), 以此类推。2. 求结点x 的权值。思路:比赛时没啥好思路,就做别的题去了, 但总感觉这就是线段树。果真没错。 其实挺水的= =整体思路:先将树dfs序跑一遍, 使得每个点变成连续的。将树分成两原创 2017-07-09 22:08:31 · 556 阅读 · 0 评论