POJ 2763 Housewife Wind

20 篇文章 0 订阅
3 篇文章 0 订阅

连通图任意两点间路径唯一,那么肯定是树,不然就会有圈

 

如果没有动态的修改边权的操作,就是简单的LCA问题了

 

现在加入动态操作后,如果修改(u,v)这条边,且不妨设u是v的父节点,那么以v为根的子树中所有节点的dis值都会改变

我们可以用树状数组来维护这个改变的del值

 

首先,将LCA转化成RMQ问题,这样我们求得了一个dfs顺序的欧拉序列,和对应的深度序列,还有一个每个节点第一次被访问的时间h[i],我们再多记录一个每个节点它的子树被访问完时的时间end[i],这样,修改(u,v)这条边,且u是v的父节点的话,处于[h[v],end[v]]这个时间段的所有节点的dis值都改变了del,用树状数组维护就行,update(h[v],del),update(end[v]+1,-del),一开始end[v]后面没有+1,wa了好久=。=

 

代码:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值