![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
lzk_1049668876
stay hungry stay foolish
展开
-
【hdu5726 2016 Multi-University Training Contest 1 】(区间gcd+线段树/st好题)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5726题意:多组数据,给n个数,给出一个询问l,r,查找在所有子区间中,能够等于[l,r]的区间gcd的数的个数。思路:首先我们需要求出每个子区间中的区间gcd.(由于区间的可加性,明显满足线段树维护的特点,可以通过线段树来求出每个子区间的区间gcd),并且,对于区间gcd而言,以a[i]为结尾的区间gcd...原创 2018-07-04 00:18:51 · 181 阅读 · 0 评论 -
【codeforces 12D】【线段树】【降维】【离散化】【三元组比较大小】
【题意】给出n个女士的三位属性xi,yi,zi(注意此处是一行x给完再给y再给z)。若存在xi>xj && yi > yj && zi>zj ,那么第 j 个人就会狗带,也就是说一个人只要存在一个三个属性都严格大于她的人,她就会选择狗带。询问狗带的人数是多少。https://codeforces.com/problemset/prob...原创 2019-02-15 19:52:02 · 225 阅读 · 0 评论 -
【codeforces 620E】【dfs】【线段树 】【lazy】【子树区间修改,区间求和】
https://codeforces.com/problemset/problem/620/E【题意】子树区间修改,区间求和【分析】先将树形结构通过dfs序转化为线性结构,子树的操作转化为线性区间上的操作,加个2进制ll存储val,lazy标记更新【代码】 好久没写线段树了,呜呜呜#include<bits/stdc++.h>using namespace...原创 2019-01-23 09:55:46 · 216 阅读 · 0 评论 -
【codeforces 339D】【线段树奇偶数层次运算pushup】【单点修改】
【链接】https://codeforces.com/problemset/problem/339/D【题意】给你(2^n)个数,更新其中的某个值,交替对这些数进行“或操作”和“异或操作”,得到最终的结果。【思路】根据层次分类判断pushup【代码】代码挺好写的,但是当时做得时候因为看错题目,思路还是有点不清,修改了一下#include<bits/stdc++....原创 2019-01-22 23:57:22 · 185 阅读 · 0 评论 -
【hdu3308 LCIS】【线段树】【pushup】【最长连续上升序列】
【链接】http://acm.hdu.edu.cn/showproblem.php?pid=3308【题意】给你n个数,m个操作。操作有两种:1.U x y 将数组第x位变为y 2. Q x y 问数组第x位到第y位连续最长子序列的长度【思路】满足区间可加。线段树维护信息:区间最长连续上升序列,前缀最长上升序列,后缀最长上升序列。pushup(p)修改的时...原创 2018-10-16 21:15:34 · 459 阅读 · 0 评论 -
【hdu5152 A Strange Problem】【数论】【欧拉降幂】【线段树】【单点修改】【好题】
【链接】http://acm.hdu.edu.cn/showproblem.php?pid=5152【题意】给你一个长度为n的序列,有m个操作,3种操作:1. 给你l,r,输出l-r的和。2. 修改操作,x,把a[x]->修改为x^a[x]3. 加操作。l,r,x,l-r区间加x输出结果对2333333取模。 【思路】重点在于第二个操作。A^x = A...原创 2018-10-09 23:21:13 · 190 阅读 · 0 评论 -
【hdu 5692 Snacks】【dfs序】【线段树】【好题】
【链接】http://acm.hdu.edu.cn/showproblem.php?pid=5692【题意】树上两种操作:0 x y 将x的权重变为y1 x 求出从0出发,经过x的路径的最距离和【分析】其实就是求一棵子树x里到0点路径权值和最大的点的那个权值和,因为是对一棵子树的所有值,所以容易想到用DFS序来处理。dfs序处理出2*n的数组,每个节点出现两次,以x...原创 2018-10-14 15:41:53 · 223 阅读 · 0 评论 -
【codeforces 981E. Addition on Segments】【线段树】【bitset 01背包的妙用优化】【好题】【操作集区间的最大值能否构成】
【链接】http://codeforces.com/contest/981/problem/E【题意】 给定q个区间加的操作,求出这q个操作的所有子集的所有最大值,在[1,n]的范围内【分析】 要知道一个数能否可由某个操作集得到,只要知道对于某个位置上的数的操作中能否构成这个数(好像口胡了)。 对于一个数,我们可以知道能对它进行的所有操作,这个数你组成的数的所有可能性...原创 2018-10-06 21:17:05 · 223 阅读 · 0 评论