
倍增
xjsong99
OI -> ACM -> AI
展开
-
NOIP2013 货车运输
题目:http://www.luogu.org/problem/show?pid=1967 分析:kruskal+LCA,注意LCA预处理的两个循环顺序别反了啊,卧槽在这个地方可是下了血本了! 代码:#include <cstdio>#include <algorithm>#include <vector>using namespace std;const int Tmax=10010,原创 2015-06-13 22:00:21 · 365 阅读 · 0 评论 -
由LCA引发的问题--RMQ,Tarjan,并查集等
引入LCA问题及其在线和离线算法 两个月前有一次一个电话面试问到了一个问题:“怎样求二叉树中距离两个叶子节点最近的祖先节点。”当时不会,后来在网上查了查发现是一个比较经典的题目,也有几种算法可以解决这个问题,我学习了一下,在这儿记下来。这个问题更宽泛的定义是:如何求树(不限于二叉树)中两个节点(不限于叶子节点)的最近公共祖先节点。这个问题被称为LCA(Lowest Commo转载 2015-06-13 22:01:58 · 480 阅读 · 0 评论 -
CF587C Duff in the Army
题目:http://codeforces.com/problemset 分析:倍增求lca,合并操作比较神奇,注意边界写法,有时包含顶端节点有时不包含,比如往上走2^0,包不包含他的父亲. 代码:#include <cstdio>#include <algorithm>#include <cstring>#include <iostream>#include <vector>using原创 2015-11-01 21:15:49 · 522 阅读 · 0 评论 -
CodeForces 466E. Information Graph (并查集+倍增)
题目: http://codeforces.com/problemset/problem/466/E题意:三种操作:1.y变为x的boss;2.x签署一份文件并逐级往上传并签署;3.查询第x个人是否签署第i份文件。分析:在线变离线;用路径压缩的并查集能直接查询当前状态下某个人的最高boss;签署一份文件时,记录签署此文件最底端的人和最顶端的人;倍增处理出每个节点往上走1&lt;...原创 2018-11-30 15:17:41 · 393 阅读 · 0 评论