bzoj 1906: 树上的蚂蚁
来源:互联网 发布:百度人工智能识别卡 编辑:程序博客网 时间:2024/05/03 20:58
Description
Input
Output
Sample Input
1
3
1 2 1
2 3 1
3
1 3 2
3 1 1
1 2 3
3
1 2 1
2 3 1
3
1 3 2
3 1 1
1 2 3
Sample Output
2
HINT
N< = 100000
Source
Play with tree By Amber
摘自Mektpoy的博客
传送门→http://blog.sina.com.cn/s/blog_ab8386bc0101i146.html←传送门
1、链有重合部分
求(a,b)离c最近的点。
我们以c为例:
此时令r=LCA(a,b),假设c不在r的子树中,即LCA(c,r)!=r那么r就是我们要找的这个点
如果LCA(c,r)==r有三种情况,第一种是LCA(a,c)==LCA(b,c)==r此时依然是r
另一种是LCA(a,c)!=r 那么此时就是LCA(a,c) 还有一种 LCA(b,c)!=r 此时是LCA(b,c)
这个画个图就能理解。。
另外其实不用再分三类,因为如果LCA(a,c)!=r 那么这个点就一定是LCA(b,c)了。。
我们以c为例:
此时令r=LCA(a,b),假设c不在r的子树中,即LCA(c,r)!=r那么r就是我们要找的这个点
如果LCA(c,r)==r有三种情况,第一种是LCA(a,c)==LCA(b,c)==r此时依然是r
另一种是LCA(a,c)!=r 那么此时就是LCA(a,c) 还有一种 LCA(b,c)!=r 此时是LCA(b,c)
这个画个图就能理解。。
另外其实不用再分三类,因为如果LCA(a,c)!=r 那么这个点就一定是LCA(b,c)了。。
2、链没有重合部分
这里博客里写错了。应该是
lca(v, q) = lca(v, u) && lca(u, q) = q 或者 lca(u, q) = lca(v, u) && lca(v, q) = q则有重合
然后整体加个not就可以得出没有重合部分的条件了。
--------------------------------------------------------------------------------------------------------------------
然后开始写代码。n=10w m=1000 感觉m^2logn似乎可以过!于是我就写了个倍增求LCA
然后。。然后就这么T了
题目特意给了T组数据来卡掉用倍增求LCA的.
所以我们需要用欧拉序列预处理然后O(1)求LCA
那么复杂度就是O(Tm^2)了。
然后我又超时了
用ST维护的时候调用了自带的log函数..预处理了log后快了3倍。然后终于过了
--------------------------------------------------------------------------------------------------------------------
既然网上都没有这题的代码那我也就不贴了!祝调试顺利XD【其实就是自己调试太久的怨念】
0 0
- bzoj 1906: 树上的蚂蚁
- 1906: 树上的蚂蚁
- [欧拉序列 LCA 鬼畜暴枚] BZOJ 1906 树上的蚂蚁 && BZOJ 3700 发展城市
- bzoj 3784: 树上的路径
- 【BZOJ 1316】 树上的询问 树分治
- BZOJ 1316: 树上的询问 点分治
- [BZOJ]1033 杀蚂蚁
- BZOJ 3251: 树上三角形
- BZOJ 3052 树上带修莫队
- BZOJ 3720 Gty的妹子树 树上分块
- BZOJ 3784|树上的路径|点分治|堆|RMQ
- BZOJ 3052 带修改的树上莫队
- 【BZOJ 3631】松鼠的新家 【LCA+树上差分】
- 【BZOJ 3697】采药人的路径 树上点分治
- bzoj 1316: 树上的询问 (点分治)
- [BZOJ 3784][树上的路径][点分治+堆]
- [BZOJ 3720]Gty的妹子树 树上分块
- [树上莫队] BZOJ 3460 Jc的宿舍
- hadoop集群所有的datanode都启动不利(处理办法)
- 请慎用 java 的 File#renameTo(File) 方法
- Microsoft SQL Server 管理 (常用管理及维护命令)
- 输出Lucence的分词信息
- mysql show processlist
- bzoj 1906: 树上的蚂蚁
- 动态内存分配
- UITableViewCell 添加 checkbox 多选 (二)
- POJ2431 数据结构 (优先队列)
- java笔记——第一个servlet重点理解web应用和servlet
- UVA-201 Squares
- DELPHI / Mdi
- .\Flash\Blinky.axf: Error: L6200E: Symbol SysTick_Handler multiply defined (by hal_cm0.o and blinky.
- 用SST89E516RD自制51单片机仿真器