原理&实现 线段树是一种可以快速进行区间修改和查询的数据结构,并且我们已经知道可以通过dfs序加线段树来维护一棵子树的信息,那么,有没有一种方法来维护树上的两个点之间的链的信息的方法呢?当然是有的,这时就要请出树链剖分了。 对于一棵有根树,我们维护两个节点之间的路径信息时,可以想到维护两个点到lca ...
分类:
其他好文 时间:
2018-05-12 02:58:18
阅读次数:
207
题目大意:有一棵树根为1,刚开始每条边的权值为1, 现在有m + n - 1 个操作, A :x y , 将x和y相连的边权值变为1, W:x, 询问x到1路径上的权值和。 思路 : 方法一: 用dfs序建立树状数组, 每个点入栈位置的值为1, 出栈为-1, 询问的值就是sum( l [ x ] ) ...
分类:
其他好文 时间:
2018-05-07 23:00:20
阅读次数:
141
题目链接:http://codeforces.com/problemset/problem/838/B You are given a directed weighted graph with n nodes and 2n?-?2 edges. The nodes are labeled from ...
分类:
其他好文 时间:
2018-05-07 22:52:04
阅读次数:
172
BZOJ_3252_攻略_线段树+dfs序 Description 题目简述:树版[k取方格数] 众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏。今天他得到了一款新游戏《XX 半岛》,这款游戏有n个场景(scene),某些场景可以通过不同的选择支到达其他场景。所有场景和选择 ...
分类:
其他好文 时间:
2018-05-06 14:57:16
阅读次数:
145
网上有很多人说用dfs序+线段树做...其实stl的堆可以...可并堆可以...很多奇奇怪怪的东西都能做... 可并堆比较好想...也比较好写... 分析: 首先,这是一个网络流做不了的题...数据太大... 其次...我们可以这样考虑一下,这个点的子树中,将这个点的权值仅更新给最大的那个就能满足 ...
分类:
其他好文 时间:
2018-05-04 15:22:52
阅读次数:
143
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5692 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Descript ...
分类:
其他好文 时间:
2018-05-04 11:52:27
阅读次数:
140
BZOJ_1803_Spoj1487 Query on a tree III_主席树 Description You are given a node-labeled rooted tree with n nodes. Define the query (x, k): Find the node w ...
分类:
其他好文 时间:
2018-04-29 19:58:54
阅读次数:
182
题意 有一颗有n个节点的有根树,根节点编号时1,每个结点都有一个值ai,开始的时候,所有节点的值都是0. 我们有q个操作,操作只有两种类型 1 v x k,a[v]+=x,a[v']+=x-k,a[v"]+=x-2*k... v'是结点v的孩子 。 2 v 输出a[v]mod 1e9+7。 分析 d ...
分类:
其他好文 时间:
2018-04-27 02:30:51
阅读次数:
155
题目链接: https://vjudge.net/problem/POJ-3321 题目大意: 题目大意级是说,给你一颗树,最初每个节点上都有一个苹果,有两种操作:修改(即修改某一个节点,修改时这一个节点苹果从有到无,或从无到有)和查询(查询某一个节点他的子树上有多少个苹果)。 解题思路: 对树的每 ...
分类:
移动开发 时间:
2018-04-26 01:07:11
阅读次数:
245
【题意】阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。 经阿狸研究发现,这个打字机是这样工作的: l 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。 l 按一下印有'B'的按键,打字 ...
分类:
编程语言 时间:
2018-04-25 14:02:03
阅读次数:
184