随笔分类 -  线段树

摘要:题目链接 https://acm.ecnu.edu.cn/contest/317/problem/F/ 题意 你需要维护一棵动态树,初始状态下仅有一个节点,编号为$1$,并支持以下操作: \(Add x y\):插入一个节点,其编号为当前存在的节点数量(包括当前新加入的节点),指定其父节点为$x$, 阅读全文
posted @ 2020-09-28 15:46 灰灰烟影 阅读(181) 评论(0) 推荐(0)
摘要:题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5381 题意 给你$n$个数,$q$次查询,每次询问$l,r$,输出$f(l,r)=\sum_{i=l}^r\sum_{j=i}^rgcd(a_i,a_{i+1},...,a_r)$ 思路 首先对于任意一 阅读全文
posted @ 2020-04-07 08:50 灰灰烟影 阅读(152) 评论(0) 推荐(0)
摘要:题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5390 题意 给定一棵$n$个节点的带点权树,进行$m$次操作,每次操作属于以下两类: 修改一个节点的权值. 对给定的节点$u$,求在$u$到$1$的路径上取节点$v$,能得到的$val_u⊗val_v$ 阅读全文
posted @ 2020-03-27 21:38 灰灰烟影 阅读(236) 评论(0) 推荐(0)
摘要:题意 对于一个区间有4个操作: 1.将a~b都加上c 2.将a~b都乘上c 3.将a~b都变成c 4.查询a~b的每个数的p次方的和。(p=1,2,3) 思路 平方和这样来推:$(a+c)^2=a^2+2ac+c^2$ 即$sum2[rt] = sum2[rt] +2 sum1[rt] c+(r l 阅读全文
posted @ 2020-03-11 00:39 灰灰烟影 阅读(170) 评论(0) 推荐(0)
摘要:题目链接: 一道裸的线段树区间修改题,懒惰数组注意要先乘后加 c++ include using namespace std; typedef long long LL; const int maxx = 400010; LL tree[maxx],lazy1[maxx],lazy2[maxx],a 阅读全文
posted @ 2019-07-25 22:21 灰灰烟影 阅读(246) 评论(0) 推荐(0)