【倍增】LCM QUERY】的更多相关文章

给一个序列,每次给一个长度l,问长度为l的区间中lcm最小的. 题解:因为ai<60,所以以某个点为左端点的区间的lcm只有最多60种的情况,而且相同的lcm区间的连续的. 所以就想到一个n*60*logn的做法,倍增找出每个点的区间lcm情况,然后修改答案…… 1-60的lcm的积大于long long,只能把数拆开,然后比较时用log,结果才用这个数的质因数相乘. 问题在于一开始我对于每个点开个20的数组记录60内第几个质数的个数,这样每次常数就要再乘个20,然后就tle…… 优化的方法是位…
题目: Problem Description This is a very simple question. There are N intervals in number axis, and M queries just like “QUERY(a,b)” indicate asking the maximum number of the disjoint intervals between (a,b) . Input There are several test cases. For ea…
QTREE2 经典的倍增思想 题目: 给出一棵树,求: 1.两点之间距离. 2.从节点x到节点y最短路径上第k个节点的编号. 分析: 第一问的话,随便以一个节点为根,求得其他节点到根的距离,然后对于每个询问(x,y),想求得lca(x,y),直接用dis[x]+dis[y]-2*dis[ lca(x,y) ]即可. 第二问的话,可以用倍增的方式求.我们通过求得节点x,y,lca(x,y)的深度,判断第k个节点落在哪个链上,该链是指是从x到根或者从y到根.最后倍增可以轻松求出一个链上第k个父亲是谁…
BUPT2017 wintertraining(15) #8D 题意 给你x轴上的N个线段,M次查询,每次问你[l,r]区间里最多有多少个不相交的线段.(0<N, M<=100000) 限时15000 MS 题解 如果不看限时,当作是1000MS的话= =,那么可以用倍增来做. 先按右端点排序. 可以去掉一下包含了其它区间的区间,可以优化一点点. 用 f[i][j] 表示 i 节点下 \(2^n\) 个不相交的线段下标. 预处理出 f 数组. 查询的时候,左端点用二分,然后右端点用倍增来找.…
题目描述 [传送门] 题目大意 给一棵树,有两种操作: 求(u,v)路径的距离. 求以u为起点,v为终点的第k的节点. 分析 比较简单的倍增LCA模板题. 首先对于第一问,我们只需要预处理出根节点到各个节点之间的距离,然后倍增LCA求解就可以了. 那么第二问我WA了6发,原来是眼瞎和手残打错了两个字符错掉了. 我们将问题分成3个部分: LCA是第k个 第k个在u到LCA的路径上 第k个在LCA到v的路径上. 首先如果LCA是第k个,那么直接输出. 如果是第二种情况,那么从u开始做倍增,每一次k-…
去博客园看该题解 题意 给定n个区间[a,b),都是左闭右开,有m次询问,每次询问你最多可以从n个区间中选出多少[L,R]的子区间,使得他们互不相交. n,m<=10^5. 区间下标<=10^9. 题解 这题要用倍增. 首先,给区间按照左端点编号排个序. 如果区间A包含了区间B,那么A一定没用,扔了. 那么剩余的区间[x,y]的x和y一定都是升序的. 之后,就是对于区间的贪心了: 找到一个区间[xi,yi]之后,一定是寻找一个xj>yi且xj最小的那个区间[xj,yj],所以设该区间的编…
题目链接[http://www.spoj.com/problems/QTREE/] 题意:给出一个包含N(N<=10000)节点的无根树,有多次询问,询问的方式有两种1.DIST  a b 求a->b之间的距离.2.KTH a b k 求a->b链上的第k个节点是谁,.如果输入DONE,结束询问. 思路:首先想到用倍增法可以解决第一种询问,只需要在DFS时候维护一个dis[i](表示i节点到根节点之间的距离,因为是无根树,我们定义节点1为根),dis(a->b)=dis[a]+di…
You are given a tree (an undirected acyclic connected graph) with N nodes, and edges numbered 1, 2, 3...N-1. Each edge has an integer value assigned to it, representing its length. We will ask you to perfrom some instructions of the following form: D…
Query on a tree II You are given a tree (an undirected acyclic connected graph) with N nodes, and edges numbered 1, 2, 3...N-1. Each edge has an integer value assigned to it, representing its length. We will ask you to perfrom some instructions of th…
题目链接  2012多校5 Problem D 题意  给定$n$个区间,数字范围在$[0, 10^{9}]$之间,保证左端点严格大于右端点. 然后有$m$个询问,每个询问也为一个区间,数字范围在$[0, 10^{9}]$之间,保证左端点严格大于右端点. 每个询问求的是在当前区间内能得到不相交的给定的区间的数目的最大值. 为了方便我先把给定区间的左端点全部$+1$,询问的区间的左端点也通通$+1$. 然后全部扔到数组里面去离散化一遍,再取出来. 这个时候问题就比较直观了. 其实这个题和  Cod…