LCA题目总结

来源:互联网 发布:台北北投温泉攻略 知乎 编辑:程序博客网 时间:2024/04/25 12:15

好像LCA的题目并不多,现在就做了10道左右,但是找不到别的了,在此做个小总结,将来有更好的题目会不断更新

解决LCA问题,一般用3种方法

1.朴素方法:两个点都一直沿路径往上走,直到有某一个节点被经过两次并且是第一次出现这样的点,那么这个就是LCA

此方法最好理解,但是用得不多,但不代表没作用,有些题目还是需要用到的

2.LCA转RMQ(在线算法):一般是将LCA转为RMQ问题,用ST算法求解,当然求解RMQ问题有很多方法,不过ST比较常用而已,这样做能及时回答每一个询问

3.Tarjan算法(离线算法):利用Tarjan算法,不过要先读入所有询问再一并回答,建议认真学习Tarjan算法本质

1.hdu 2586 How far away ?

2.poj 1986 Distance Queries

3.hdu 2874 Connections between cities

需要判断是否同在一个集合中

4.hdu 3078 Network

修改点权值

5.poj 2763 Housewife Wind

修改边权值,树状数组优化

6.poj 3694 Network

先用并查集缩点

7.poj 3728 The merchant

并查集应用

8.hdu 3830 Checkers   (未完成)








0 0
原创粉丝点击