摘要: 【概述】RMQ(Range Minimum/Maximum Query),即区间最值查询,给定一个长度为n的数列,回答若干询问RMQ(A,i,j)(i,j 2 #include 3 #include 4 using namespace std; 5 6 int dpmax[50000 + 5][3... 阅读全文
posted @ 2015-07-30 13:31 kiritoghy 阅读(171) 评论(0) 推荐(0)
摘要: 今天看了一下午的lca的tarjan写法,发现果真还是不能全部理解,不过还是有大部分能够理解,就将自己的思路写在这里备忘吧。。tarjan算法是基于并查集与dfs的一种离线算法tarjan算法的步骤是(当dfs到节点u时):1 在并查集中建立仅有u的集合,设置该集合的祖先为u,就是普通的并查集,fa... 阅读全文
posted @ 2015-07-30 13:29 kiritoghy 阅读(206) 评论(0) 推荐(0)
摘要: lca一般求法都是tarjan 或者 倍增,其实还可以转化为rmq来求解。具体如下一:1.对有根树T进行DFS,将遍历到的结点按照顺序记下,我们将得到一个长度为2N – 1的序列,称之为T的欧拉序列F2.每个结点都在欧拉序列中出现,我们记录结点u在欧拉序列中第一次出现的位置为pos(u),我们也用一... 阅读全文
posted @ 2015-07-30 13:25 kiritoghy 阅读(822) 评论(0) 推荐(0)