![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
文章平均质量分 60
DancingZ
三秋桂子,十里荷花
展开
-
#Loj121 动态图连通性
Description你要维护一张无向简单图。你被要求加入删除一条边及查询两个点是否连通。0:加入一条边。保证它不存在。1:删除一条边。保证它存在。2:查询两个点是否联通。Input输入的第一行是两个数 N,M。N≤5000,M≤500000。接下来 M行,每一行三个数 op x y。op表示操作编号。Output对于每一个 op=2的询问,输出一行 Y 或 N ,表示...原创 2018-07-17 18:51:16 · 56032 阅读 · 0 评论 -
BZOJ3073 Journeys
Description Seter建造了一个很大的星球,他准备建造N个国家和无数双向道路。N个国家很快建造好了,用1..N编号,但是他发现道路实在太多了,他要一条条建简直是不可能的!于是他以如下方式建造道路:(a,b),(c,d)表示,对于任意两个国家x,y,如果a<=x<=b,c<=y<=d,那么在xy之间建造一条道路。Seter保证一条道路不会修建两次,也保证不会...原创 2018-09-21 19:20:16 · 282 阅读 · 0 评论 -
洛谷P3588 线段树优化建图
题目描述给定一个长度为n的正整数序列a,每个数都在1到10^9范围内,告诉你其中s个数,并给出m条信息,每条信息包含三个数l,r,k以及接下来k个正整数,表示a[l],a[l+1],...,a[r-1],a[r]里这k个数中的任意一个都比任意一个剩下的r-l+1-k个数大(严格大于,即没有等号)。请任意构造出一组满足条件的方案,或者判断无解。输入输出格式输入格式:第一行包含三个正整...原创 2018-09-21 18:44:10 · 876 阅读 · 0 评论 -
(倍增)假期旅行
一道倍增题。设f[i][j]表示从i位置开始,走2^j到的最远城市。考虑每一个座位的限定,对于一段[l,r],如果a位置为空,那么[l,r]至少能到r位置,对于预定座位的条件,按座位为第一关键字排序之后,维护一个城市单调的东东,线段树可做。#include<bits/stdc++.h>using namespace std;const int Maxn=200...原创 2018-09-19 14:58:08 · 169 阅读 · 0 评论 -
SPOJ1487 Query on a tree III
DescriptionYou are given a node-labeled rooted tree with n nodes. Define the query (x, k): Find the node whose label is k-th largest in the subtree of the node x. Assume no two nodes have the same l...原创 2018-09-24 19:53:14 · 189 阅读 · 0 评论 -
区间第k大(静态)——主席树
Description给定一个长度为n的序列,m个询问,每个询问的形式为:L,r,k表示在[L,r]间中的第k大元素。Input第1行:2个数,n,m表示序列的长度和询问的个数第2行:n个数,表示n个数的大小第3-m+2行:每行3个数,L,r,k表示询问在[L,r]区间内第k小的元素Output对于每个询问,输出答案。Sample Input7 2 1 5 2 6 ...原创 2018-09-12 21:11:45 · 659 阅读 · 0 评论 -
BZOJ3196 二逼平衡树
Description您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询 x在区间内的排名;2.查询区间内排名为 k 的值;3.修改某一位置上的数值;4.查询 x 在区间内的前趋(前趋定义为小于 x,且最大的数);5.查询 x 在区间内的后继(后继定义为大于 x,且最小的数)。Input第一行两个数 n,m,表示长度为 n 的有序序列和 m 个操...原创 2018-08-20 19:19:31 · 272 阅读 · 1 评论 -
POJ2104 区间第k大(带修改)
Description 给定一个长度为N的已知序列A[i](1<=i<=N),要求维护这个序列,能够支持以下两种操作: 1、查询A[i],A[i+1],A[i+2],…,A[j](1<=i<=j<=N)中,升序排列后排名第k的数。 2、修改A[i]的值为j。 所谓排名第k,指一些数按照升序排列后,第k位的数。例如序列{6,1,9,6,6},排名第3的...原创 2018-08-16 20:21:40 · 634 阅读 · 0 评论 -
TJOI2018 数学计算
Description小豆现在有一个数 x,初始值为1。小豆有Q次操作,操作有两种类型:1 m:x=x×m ,输出 x mod M ;2 pos:x=x/ 第 pos 次操作所乘的数(保证第 pos 次操作一定为类型1,对于每一个类型1的操作至多会被除一次),输出 x mod M 。Input一共有t组输入。对于每一组输入,第一行是两个数字Q,M 。接下来 Q 行,每一行为操作...原创 2018-07-17 19:02:01 · 422 阅读 · 0 评论 -
线段树
线段树是一种基础且强大的数据结构,修改与查询均为log2(n),是十分优秀的数据结构,下面展示了线段树的几种常见用法:1)单点修改:这个就不多说了,直接上代码struct Tree{ int l,r;//区间 int ls,rs;//左右儿子编号 int sum;//需维护的答案,这里是维护区间和 }; //结构体的定义可根据自身喜好决定是采用直接建树或者动态开点 /**...原创 2018-05-31 09:19:26 · 383 阅读 · 0 评论 -
BZOJ4184 shallot葱苗
Description 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏。 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且 让小葱从自己手中的小葱苗里选出一些小葱苗使得选出的小葱苗上的数字的异或和最大。 这种小问题对于小葱来说当然不在话下,但是他的身边没有电脑,于是他打电话给同为Oi选手的你,你能帮帮他吗? ...原创 2018-07-14 16:57:29 · 334 阅读 · 0 评论 -
SNOI2017 炸弹(#loj2255)
loj上前面跑得很快的魔法代码骚短。(但是很容易被hack,这些人co标都不带脑子么 = =)正解:很明显有个朴素的暴力解法,对于每个炸弹,我们像它能影响的范围内的炸弹都连一条边,最后只需统计一遍size即可,但是n^2会挂掉,所以就有了线段树建图优化(并查集貌似也可以)。于是乎,我也想要自暴自弃了= =线段树建图调的我心态爆炸,然后我就总结出了这道题的几个值得注意的地方:1、内存...原创 2018-09-21 20:58:47 · 257 阅读 · 0 评论