随笔分类 -  数据结构 - 线段树

摘要:题目描述 给出 $S$ 串和 $m$ 个 $T_i$ 串,$q$ 次询问,每次询问给出 $l$ 、$r$ 、$x$ 、$y$ ,求 $S_{x...y}$ 在 $T_l,T_{l+1},...,T_r$ 中的哪一个里出现次数最多,输出出现次数最多的串编号(如果有多个则输出编号最小的)以及相应出现次数 阅读全文
posted @ 2018-04-04 20:52 GXZlegend 阅读(871) 评论(0) 推荐(0) 编辑
摘要:题目描述 给定一棵n个点的有根树,编号依次为1到n,其中1号点是根节点。每个节点都被染上了某一种颜色,其中第i个节点的颜色为c[i]。如果c[i]=c[j],那么我们认为点i和点j拥有相同的颜色。定义depth[i]为i节点与根节点的距离,为了方便起见,你可以认为树上相邻的两个点之间的距离为1。站在 阅读全文
posted @ 2018-04-04 10:43 GXZlegend 阅读(1288) 评论(0) 推荐(0) 编辑
摘要:题目描述 给出一个长度为 $n$ 的序列,支持 $m$ 次操作,操作有四种:区间加、区间下取整除、区间求最小值、区间求和。 $n\le 100000$ ,每次加的数在 $[-10^4,10^4]$ 之间,每次除的数在 $[2,10^9]$ 之间。 题解 线段树+均摊分析 和 【uoj#228】基础数 阅读全文
posted @ 2018-04-04 09:40 GXZlegend 阅读(747) 评论(0) 推荐(0) 编辑
摘要:题目描述 给出一棵n个点、以1为根的有根树,点有点权。要求支持如下两种操作: M x y:将点x的点权改为y; Q x:求以x为根的子树的最大连通子块和。 其中,一棵子树的最大连通子块和指的是:该子树所有子连通块的点权和中的最大值 (本题中子连通块包括空连通块,点权和为0)。 给出一棵n个点、以1为 阅读全文
posted @ 2018-04-03 20:37 GXZlegend 阅读(1597) 评论(0) 推荐(0) 编辑
摘要:题目描述 给出一棵树,点有点权。多次增加某个点的点权,并在某一棵子树中询问:选出若干个节点,使得每个叶子节点到根节点的路径上至少有一个节点被选择,求选出的点的点权和的最小值。 输入 输入文件第一行包含一个数n,表示树的大小。 接下来一行包含n个数,表示第i个点的权值。 接下来n-1行每行包含两个数f 阅读全文
posted @ 2018-04-03 19:04 GXZlegend 阅读(1101) 评论(0) 推荐(0) 编辑
摘要:题目描述 给出一个长度为 $n$ 的序列,支持 $m$ 次操作,操作有三种:区间加、区间开根、区间求和。 $n,m,a_i\le 100000$ 。 题解 线段树+均摊分析 对于原来的两个数 $a$ 和 $b$ ( $a>b$ ) ,开根后变成 $\sqrt a$ 和 $\sqrt b$ ,它们的差 阅读全文
posted @ 2018-04-03 16:51 GXZlegend 阅读(984) 评论(2) 推荐(0) 编辑
摘要:题目描述 给你一棵 $n$ 个点的树,边有边权。$m$ 次询问,每次给出 $l$ 、$r$ 、$x$ ,求 $\text{Min}_{i=l}^r\text{dis}(i,x)$ 。 $n,m\le 10^5$ 。 题解 动态点分治+线段树 分块做法太傻逼了我们把它丢到垃圾桶里。树上距离考虑动态点分 阅读全文
posted @ 2018-03-22 20:53 GXZlegend 阅读(475) 评论(0) 推荐(0) 编辑
摘要:题目描述 给出 $n$ 个瓶子和无限的水,每个瓶子有一定的容量。每次你可以将一个瓶子装满水,或将A瓶子内的水倒入B瓶子中直到A倒空或B倒满。$m$ 次操作,每次给 $[l,r]$ 内的瓶子容量增加 $x$ ,或询问使用 $[l,r]$ 内瓶子能够凑出的最小体积。 输入 第一行包括两个数字:瓶子数n, 阅读全文
posted @ 2018-03-20 18:14 GXZlegend 阅读(485) 评论(0) 推荐(0) 编辑
摘要:题目描述 维护一个向量集合,在线支持以下操作:"A x y (|x|,|y| < =10^8)":加入向量(x,y);"Q x y l r (|x|,|y| < =10^8,1 < =L < =R < =T,其中T为已经加入的向量个数)":询问第L个到第R个加入的向量与向量(x,y)的点积的最大值。 阅读全文
posted @ 2018-03-05 16:48 GXZlegend 阅读(675) 评论(0) 推荐(0) 编辑
摘要:题目描述 给定一个长度为 N 序列,编号从 1 到 N 。要求支持下面几种操作:1.给一个区间[L,R] 加上一个数x 2.把一个区间[L,R] 里小于x 的数变成x 3.把一个区间[L,R] 里大于x 的数变成x 4.求区间[L,R] 的和5.求区间[L,R] 的最大值6.求区间[L,R] 的最小 阅读全文
posted @ 2018-01-25 10:50 GXZlegend 阅读(1143) 评论(1) 推荐(0) 编辑
摘要:题目描述 维护一个长度为N的序列a,现在有三种操作: 1)给出参数U,V,C,将a[U],a[U+1],...,a[V-1],a[V]都赋值为C。 2)给出参数U,V,C,对于区间[U,V]里的每个数i,将a[i]赋值为max(a[i]+C,0)。 3)给出参数U,V,输出a[U],a[U+1],. 阅读全文
posted @ 2018-01-25 09:47 GXZlegend 阅读(514) 评论(1) 推荐(0) 编辑
摘要:题目描述 给你一个序列,支持三种操作: $0\ x\ y\ t$ :将 $[x,y]$ 内大于 $t$ 的数变为 $t$ ;$1\ x\ y$ :求 $[x,y]$ 内所有数的最大值;$2\ x\ y$ :求 $[x,y]$ 内所有数的和。 多组测试数据,$\sum n,\sum m\le 10^6 阅读全文
posted @ 2018-01-19 17:03 GXZlegend 阅读(554) 评论(0) 推荐(0) 编辑
摘要:题目描述 给你一个长度为 $n$ 的序列,支持五种操作: $1\ l\ r\ x$ :将 $[l,r]$ 内的数加上 $x$ ;$2\ l\ r\ x$ :将 $[l,r]$ 内的数减去 $x$ ,并与 $0$ 取 $\text{max}$ ;$3\ l\ r\ x$ :将 $[l,r]$ 内的数变 阅读全文
posted @ 2018-01-19 10:30 GXZlegend 阅读(443) 评论(0) 推荐(0) 编辑
摘要:题目描述 给你一个序列,支持4种操作:1.查询区间最大值;2.查询区间历史最大值;3.区间加;4.区间赋值。 输入 第一行一个正整数T,表示Bob需要监视CPU的总时间。 然后第二行给出T个数表示在你的监视程序执行之前,Bob干的事让CPU在这段时间内每个时刻的使用率达已经达到了多少。 第三行给出一 阅读全文
posted @ 2018-01-19 08:58 GXZlegend 阅读(1538) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入 第一行包含一个正整数N,表示树中结点的个数。第二行包含N个正实数,第i个数表示xi (1<=xi<=10^5)。第三行包含N个正实数,第i个数表示yi (1<=yi<=10^5)。第四行包含N个正实数,第i个数表示pi (1<=pi<=10^5)。第五行包含N个正实数,第i个数表示q 阅读全文
posted @ 2017-12-28 16:32 GXZlegend 阅读(604) 评论(0) 推荐(0) 编辑
摘要:题目描述 给一颗n个节点的树,边权均为1,初始点权均为0,m次操作:Q x:询问x的点权。M x d w:将树上与节点x距离不超过d的节点的点权均加上w。 输入 第一行两个正整数:n,m接下来的n-1行,每行三个正整数u,v,代表u,v之间有一条边。接下来的m行,每行给出上述两种操作中的一种。 输出 阅读全文
posted @ 2017-12-28 10:59 GXZlegend 阅读(737) 评论(0) 推荐(0) 编辑
摘要:题目描述 在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i]。不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发生变动。接下来你需要在线处理M次操作:0 x k 表示发生了一次地震,震中城市为x, 阅读全文
posted @ 2017-12-28 10:24 GXZlegend 阅读(946) 评论(0) 推荐(0) 编辑
摘要:题目描述 你要维护一个向量集合,支持以下操作: 1.插入一个向量(x,y) 2.删除插入的第i个向量 3.查询当前集合与(x,y)点积的最大值是多少。如果当前是空集输出0 输入 第一行输入一个整数n,表示操作个数 接下来n行,每行先是一个整数t表示类型,如果t=1,输入向量 (x,y);如果t=2, 阅读全文
posted @ 2017-12-25 16:38 GXZlegend 阅读(650) 评论(0) 推荐(0) 编辑
摘要:题目描述 P 博士将他的计算任务抽象为对一个整数的操作。 具体来说,有一个整数 $x$ ,一开始为0。 接下来有 $n$ 个操作,每个操作都是以下两种类型中的一种: 1 a b :将 $x$ 加上整数 $a⋅2^b$ ,其中 $a$ 为一个整数,$b$ 为一个非负整数 2 k :询问 $x$ 在用二 阅读全文
posted @ 2017-12-19 11:01 GXZlegend 阅读(1378) 评论(0) 推荐(0) 编辑
摘要:题目描述 给出一个长度为 $n$ 的序列,序列中每一个数都是正整数。现在给出 $m$ 个指定区间以及 $q$ 次操作,每次操作将某个位置的数-1(最多减到0),并询问有多少个指定区间的区间和为0。强制在线。 给出一个长度为 $n$ 的序列,序列中每一个数都是正整数。现在给出 $m$ 个指定区间以及 阅读全文
posted @ 2017-12-12 09:57 GXZlegend 阅读(352) 评论(0) 推荐(0) 编辑