POJ 2763"Housewife Wind"(DFS序+树状数组+LCA)
•题意
一对夫妇居住在 xx村庄,给村庄有 $n$ 个小屋;
这 $n$ 个小屋之间有双向可达的道路,不会出现环,即所构成的图是个树;
从 $a_i$ 小屋到 $b_i$ 小屋需要花费 $w_i$ 时间;
初始,女主角在 $s$ 号小屋,有 q 次询问,每次询问为以下两种的一个:
- 0 u : 她有个孩子在 $u$ 号屋,需要妈妈接她回家,输出从 $s$ 到 $u$ 的最短时间
- 1 x val : 由于种种原因,第 $x$ 条道路的耗时由之前的 $w_x$ 变为了 $val$
•题解
考虑如图所示的结构,在树上操作有些不便之处,所以,我们需要将其序列化;
将上图所示的树,将其转化成 DFS序;
$1\overset{w_{1,2}}{\rightarrow} 2 \overset{w_{2,4}}{\rightarrow} 4 \overset{-w_{2,4}}{\leftarrow} 2\overset{w_{2,5}}{\rightarrow}5\overset{-w_{2,5}}{\leftarrow}2\overset{-w_{1,2}}{\leftarrow}1\overset{w_{1,3}}{\rightarrow}3\overset{-w_{1,3}}{\leftarrow}1$
并令权重沿叶子方向为正,沿根方向为负;
那么从 $u$ 第一次出现的位置到 $v$ 第一次出现的位置中,不属于 $u,v$ 路径上的边就会被抵消掉;
于是有:
$(u,v)$之间的距离 = (从 $LCA(u,v)$ 到 $u$ 的边的权重和)+(从 $LCA(u,v)$ 到 $v$ 的边的权重和)
因为是单点更新,所以,我们可以考虑到用树状数组来维护 DFS序;
•Code
POJ 2763"Housewife Wind"(DFS序+树状数组+LCA)的更多相关文章
- HDU 5293 Tree chain problem 树形dp+dfs序+树状数组+LCA
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5293 题意: 给你一些链,每条链都有自己的价值,求不相交不重合的链能够组成的最大价值. 题解: 树形 ...
- HDU 5293 Annoying problem 树形dp dfs序 树状数组 lca
Annoying problem 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5293 Description Coco has a tree, w ...
- POJ 3321 Apple Tree DFS序 + 树状数组
多次修改一棵树节点的值,或者询问当前这个节点的子树所有节点权值总和. 首先预处理出DFS序L[i]和R[i] 把问题转化为区间查询总和问题.单点修改,区间查询,树状数组即可. 注意修改的时候也要按照d ...
- BZOJ 2819: Nim( nim + DFS序 + 树状数组 + LCA )
虽然vfleaking好像想卡DFS...但我还是用DFS过了... 路径上的石堆异或和=0就是必败, 否则就是必胜(nim游戏). 这样就变成一个经典问题了, 用DFS序+BIT+LCA就可以在O( ...
- POJ.2763 Housewife Wind ( 边权树链剖分 线段树维护区间和 )
POJ.2763 Housewife Wind ( 边权树链剖分 线段树维护区间和 ) 题意分析 给出n个点,m个询问,和当前位置pos. 先给出n-1条边,u->v以及边权w. 然后有m个询问 ...
- POJ 3321:Apple Tree + HDU 3887:Counting Offspring(DFS序+树状数组)
http://poj.org/problem?id=3321 http://acm.hdu.edu.cn/showproblem.php?pid=3887 POJ 3321: 题意:给出一棵根节点为1 ...
- HDU 3887:Counting Offspring(DFS序+树状数组)
http://acm.hdu.edu.cn/showproblem.php?pid=3887 题意:给出一个有根树,问对于每一个节点它的子树中有多少个节点的值是小于它的. 思路:这题和那道苹果树是一样 ...
- Codeforces Round #225 (Div. 1) C. Propagating tree dfs序+树状数组
C. Propagating tree Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/383/p ...
- BZOJ 2434: [Noi2011]阿狸的打字机( AC自动机 + DFS序 + 树状数组 )
一个串a在b中出现, 那么a是b的某些前缀的后缀, 所以搞出AC自动机, 按fail反向建树, 然后查询(x, y)就是y的子树中有多少是x的前缀. 离线, 对AC自动机DFS一遍, 用dfs序+树状 ...
随机推荐
- Ubuntu的网络共享
实际场景 公司项目中遇到一个场景:Ubuntu的主机上装了个4G卡(USB模式),需要将这个4G网共享给一个AP,使得所有连接AP的移动设备都可以通过4G上外网 方法很简单: 1. 将4G网口之外的另 ...
- hive行转列的高级用法later view explode
先贴出一个示例: 参考链接
- 微信端的user-Agent
在iPhone下,返回 Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Ge ...
- PHP学习(语言结构语句)
switch case语句 for循环语句: foreach循环语句 常用于遍历数组,一般有两种使用方式:不取下标.取下标. (1)只取值,不取下标 <?php foreach (数组 as 值 ...
- 分布式Jmeter
遇到的问题 1.压力不够大 2.单台瓶颈 3.网络瓶颈 分布式系统是由一组通过网络进行通信.为了完成共同的任务而协调工作的计算机节点组成的系统.分布式系统的出现是为了用廉价的.普通的机器完成单个计算机 ...
- Leetcode811.Subdomain Visit Count子域名访问计数
一个网站域名,如"discuss.leetcode.com",包含了多个子域名.作为顶级域名,常用的有"com",下一级则有"leetcode.com ...
- js(jquery)鼠标移入移出事件时,出现闪烁、隐藏显示隐藏显示不停切换的情况
<script> $(".guanzhu").hover(function(){ $(".weixinTop").show(); },functio ...
- POJ 1679The Unique MST
Description Given a connected undirected graph, tell if its minimum spanning tree is unique. Definit ...
- 基于GD库的php验证码类(支持中英文字体、背景、干扰点线、扭曲…….)
转自:http://www.blhere.com/1168.html 12345678910111213141516171819202122232425262728293031323334353637 ...
- Java练习 SDUT-4303_简单的复数运算(类和对象)
简单的复数运算(类和对象) Time Limit: 2000 ms Memory Limit: 65536 KiB Problem Description 设计一个类Complex,用于封装对复数的下 ...