摘要: 推荐技术公众号:不爱睡觉的大猪 好像LCA的题目并不多,现在就做了10道左右,但是找不到别的了,在此做个小总结,将来有更好的题目会不断更新 解决LCA问题,一般用3种方法 1.朴素方法:两个点都一直沿路径往上走,直到有某一个节点被经过两次并且是第一次出现这样的点,那么这个就是LCA 此方法最好理解, 阅读全文
posted @ 2013-06-14 10:20 Titanium 阅读(6569) 评论(0) 推荐(3) 编辑
摘要: LCA + 二分(很好的题目,思维难度和编程技巧兼具的一题,但是写起来又不会太麻烦,好题!)思路参考了网上题意:略,就是点间可以跳跃,但是不能越过两个点,每次跳跃的距离就是两点的距离 * 21.一般很容易想到,可以把一个状态看成一个点,那么状态间的转移就可以看做点间的连边,而且应该是无向边,应该两个状态是可以转化的。但是想到这里还不够,如果能想到这个图其实是个二叉树那么就完美了,而且应该说是一个无限深的二叉树,而且每个节点都有两个儿子,不会只有1个为什么会是一个二叉树,是因为对于每个状态,它都一定只会有3种或2种转移可能。对于一个状态,我们将3个点排好序,x < y < z如果y 阅读全文
posted @ 2013-06-14 09:45 Titanium 阅读(1373) 评论(0) 推荐(0) 编辑