摘要: 记录dfs序列,dfn[tot] 记录第tot次访问的节点 然后查两点在dfs序中出现的第一次 id[u] id[v] 然后 找 dep[k] = min( dep[i] ) {i 属于 [id[u], id[v]]} 最后dfn[k] 就是所求.. 感觉弄来弄去 就是 在映射... 无非就是 求一 阅读全文
posted @ 2018-11-23 23:35 Draymonder 阅读(145) 评论(0) 推荐(0) 编辑
摘要: RMQ问题 用的st表吧,读入数据挺多的,输出数据也挺多的 我还用了 cout<<endl; T了.. 真的是 做题不带脑子的 阅读全文
posted @ 2018-11-23 20:21 Draymonder 阅读(122) 评论(0) 推荐(0) 编辑
摘要: tarjan求lca 就是dfs序中用并查集维护下,当访问到询问的第二个点u的时候 lca就是第一点的find(fa[v]) fa[v] = u; // 当v为u的儿子 且 v已经dfs完毕 阅读全文
posted @ 2018-11-23 19:50 Draymonder 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 并查集的基本使用 阅读全文
posted @ 2018-11-23 14:48 Draymonder 阅读(145) 评论(0) 推荐(1) 编辑
摘要: 用的dfs,自下往上搜索一个节点的所有祖先,然后在相应祖先 判断是否是另一个节点的祖先,如果是 就截止,否则继续往上搜索,直到搜索到,或者知道所有的祖先都被扫描完成 阅读全文
posted @ 2018-11-23 14:39 Draymonder 阅读(156) 评论(0) 推荐(0) 编辑
摘要: PathUtil ImageUtil 阅读全文
posted @ 2018-11-23 12:24 Draymonder 阅读(517) 评论(0) 推荐(0) 编辑