花开堪折|

Creeper_l

园龄:1年3个月粉丝:9关注:13

P7735 [NOI2021] 轻重边 题解

是一道树剖好题,之前听 lsl 讲过一点,于是很快就做出来了。

题意:有一个 \(n\) 个节点的树,最开始的时候所有边都是轻边,维护两个操作:

  • 操作一:将 \(u\)\(v\) 的路径中经过的所有点的邻边变为轻边,再将这条路径上的边变为重边。

  • 操作二:求出 \(u\)\(v\) 这条路径上有多少条重边。

首先我们会发现一个性质,如果一条边是重边,当且仅当这条边的相邻两个点在同一次操作一被操作。因为如果不是的话,它一定没有被操作过或者被变为轻边。

那么看到这种性质我们就可以想到把每一个点染上一个颜色,这个颜色就是它被操作时的次数 \(i\),如果一条边的两个端点颜色相同的话,该边即为重边。

所以问题就变为了区间修改,区间查询有多少个相邻且相等的数对,线段树维护即可,注意查询跳链的时候要看两条链的相邻端点是否相等。

最开始的时候将每个点赋值为互不相同的负数即可。

本文作者:Creeper_l

本文链接:https://www.cnblogs.com/Creeperl/p/17892754.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Creeper_l  阅读(15)  评论(0编辑  收藏  举报
  1. 1 イエスタデイ(翻自 Official髭男dism) 茶泡饭,春茶,kobasolo
  2. 2 世间美好与你环环相扣 柏松
  3. 3 True love tired
  4. 4 一笑江湖 (DJ弹鼓版) 闻人听書_
  5. 5 最好的安排 曲婉婷
  6. 6 星星在唱歌 司南
  7. 7 山川 李荣浩
  8. 8 On My Way Alan Walker
  9. 9 百战成诗 王者荣耀·100英雄官方群像献礼歌
  10. 10 雪 Distance Capper / 罗言
  11. 11 Edamame bbno$ / Rich Brian
  12. 12 半生雪 七叔-叶泽浩
  13. 13 Catch My Breath Kelly Clarkson
  14. 14 Love Is Gone SLANDER / Dylan Matthew
  15. 15 Endless Summer Alan Walker / Zak Abel
  16. 16 悬溺 葛东琪
  17. 17 风吹丹顶鹤 葛东琪
  18. 18 Normal No More TYSM
  19. 19 哪里都是你 队长
  20. 20 Stronger Kelly Clarkson
  21. 21 廖俊涛
  22. 22 消愁 毛不易
  23. 23 The Runner Yubik
  24. 24 踏山河 七叔-叶泽浩
  25. 25 Waiting For Love Avicii
  26. 26 在你的身边 盛哲
  27. 27 Dream It Possible Delacey
  28. 28 凄美地 郭顶
  29. 29 满天星辰不及你 ycc
  30. 30 侧脸 于果
  31. 31 阿拉斯加海湾 蓝心羽
  32. 32 虞兮叹 闻人听書_
  33. 33 离别开出花 就是南方凯
  34. 34 盗墓笔记·十年人间 李常超 (Lao乾妈)
山川 - 李荣浩
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示