分类 - 数据结构

? 解题记录 ? ? 洛谷 ? ? 线段树 ? ? 模板 ?    2017-09-09 17:31:17    401    0    0
题目描述如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.将某区间每一个数乘上x 3.求出某区间每一个数的和 输入输出格式输入格式:   第一行包含三个整数N、M、P,分别表示该数列数字的个数、操作的总个数和模数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含3或4个整数,表示一个操作,具体如下: 操作1: 格式:1 x y k 含义:将区间[x,y]内每个数乘上k 操作2: 格式:2 x y k 含义:将区间[x,y]内每个数加上k 操作3: 格式:3 x y 含义:输出区间[x,y]内每个数的和对P取模所得
? 解题记录 ? ? 洛谷 ? ? LCT ? ? 模板 ?    2017-07-27 09:50:29    379    0    0
题目背景动态树 题目描述给定N个点以及每个点的权值,要你处理接下来的M个操作。操作有4种。操作从0到3编号。点从1到N编号。 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和。保证x到y是联通的。 1:后接两个整数(x,y),代表连接x到y,若x到Y已经联通则无需连接。 2:后接两个整数(x,y),代表删除边(x,y),不保证边(x,y)存在。 3:后接两个整数(x,y),代表将点X上的权值变成Y。 输入输出格式输入格式:   第1行两个整数,分别为N和M,代表点数和操作数。 第2行到第N+1行,每行一个整数,整数在[1,10^9]内,代表每个点的权值。 第N
? 解题记录 ? ? 洛谷 ? ? 并查集 ?    2017-07-25 17:24:39    472    0    0
题目描述S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为c 的冲突事件。 每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报到S 城Z 市长那里。公务繁忙的Z 市长只会去看列表中的第一个事件的影响力,如果影响很坏,他就会考虑撤换警察局长。 在详细考察了N 名罪犯间的矛盾关系后,
? 解题记录 ? ? BZOJ ? ? LCT ?    2017-07-24 22:49:30    219    0    0
2049: [Sdoi2008]Cave 洞穴勘测Description辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两个洞穴之间的一条路径。洞穴都十分坚固无法破坏,然而通道不太稳定,时常因为外界影响而发生改变,比如,根据有关仪器的监测结果,123号洞穴和127号洞穴之间有时会出现一条通道,有时这条通道又会因为某种稀奇古怪的原因被毁。辉辉
? 解题记录 ? ? 洛谷 ? ? Splay ? ? 替罪羊树 ? ? Treap ? ? 模板 ? ? 平衡树 ?    2017-07-21 10:06:08    444    0    0
题目描述您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(若有多个相同的数,因输出最小的排名) 查询排名为x的数 求x的前驱(前驱定义为小于x,且最大的数) 求x的后继(后继定义为大于x,且最小的数)输入输出格式输入格式: 第一行为n,表示操作的个数,下面n行每行有两个数opt和x,opt表示操作的序号(1<=opt<=6) 输出格式: 对于操作3,4,5,6每行输出一个数,表示对应答案 输入输出样例输入样例#1:10 1 106465 4 1 1 317
? 解题记录 ? ? BZOJ ? ? 并查集 ? ? 线段树 ? ? 可持久化数据结构 ?    2017-07-21 10:06:08    384    0    0
原题:  可持久化并查集  Descriptionn个集合 m个操作操作:1 a b 合并a,b所在集合2 k 回到第k次操作之后的状态(查询算作操作)3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 0<n,m<=2*10^4 Sample Input5 6 1 1 2 3 1 2 2 0 3 1 2 2 1 3 1 2 Sample Output1 0 1                  无语了,第一次接触可持久化数据结
? 解题记录 ? ? BZOJ ? ? KD tree ?    2017-07-21 10:06:08    522    0    0
2716: [Violet 3]天使玩偶Description Input Output           终于,第一棵KDtree ,撒花~~~撒花~~~撒花~~~       才知道这道题用4个CDQ容斥不是一般的快,但是80SEC的时间限制给kdtree亮了绿灯!       主要思想先把所有操作离线,对包括所有插入节点的点集建树,把出现的点做一个exist    
? 解题记录 ? ? 洛谷 ? ? 树状数组 ? ? 离散化 ?    2017-07-21 10:06:08    325    0    0
题目描述猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。 输入输出格式输入格式:   第一行,一个数n,表示序列中有n个数。 第二行n个数,表示给定的序列。   输出格式:   给定序列中逆序对的数目。   输入输出样例输入样例#1:6 5 4&nbs
? 解题记录 ? ? KD tree ? ? BZOJ ? ? cdq分治 ? ? 分治 ?    2017-07-21 10:06:08    798    0    0
Description 有n朵花,每朵花有三个属性:花形(s)、颜色(c)、气味(m),又三个整数表示。现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量。定义一朵花A比另一朵花B要美丽,当且仅当Sa>=Sb,Ca>=Cb,Ma>=Mb。显然,两朵花可能有同样的属性。需要统计出评出每个等级的花的数量。Input 第一行为N,K (1 <= N <= 100,000, 1 <= K <= 200,000 ), 分别表示花的数量和最大属性值。 以下N行,每行三个整数si, ci, mi (1 <= si, ci, mi <= K),
? 解题记录 ? ? 洛谷 ? ? 堆 ?    2017-07-21 10:06:08    319    0    0
题目描述如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入输出格式输入格式:   第一行包含一个整数N,表示操作的个数 接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下: 操作1: 1 x 操作2: 2 操作3: 3   输出格式:   包含若干行正整数,每行依次对应一个操作2的结果。   输入输出样例输入样例#1:5 1 2 1 5 2 3 2 输出样例#1:2 5 说明时空限制:1000ms,128M