![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 53
DancingZ
三秋桂子,十里荷花
展开
-
BJOI2010 次小生成树
Description 小C最近学了很多最小生成树的算法,Prim算法、Kurskal算法、消圈算法等等。 正当小C洋洋得意之时,小P又来泼小C冷水了。小P说,让小C求出一个无向图的次小生成树,而且这个次小生成树还得是严格次小的,也就是说: 如果最小生成树选择的边集是EM,严格次小生成树选择的边集是ES,那么需要满足:(value(e)表示边e的权值) 这下小C蒙了...原创 2018-11-04 21:31:54 · 315 阅读 · 0 评论 -
BZOJ1984 月下“毛景树”
Description 毛毛虫经过及时的变形,最终逃过的一劫,离开了菜妈的菜园。 毛毛虫经过千山万水,历尽千辛万苦,最后来到了小小的绍兴一中的校园里。爬啊爬~爬啊爬~~毛毛虫爬到了一颗小小的“毛景树”下面,发现树上长着他最爱吃的毛毛果~~~ “毛景树”上有N个节点和N-1条树枝,但节点上是没有毛毛果的,毛毛果都是长在树枝上的。但是这棵“毛景树”有着神奇的魔力,他能改变树枝上毛毛果的个数: ...原创 2018-09-24 11:47:55 · 198 阅读 · 0 评论 -
JSOI2008 火星人
Description【问题描述】: 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀。比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号 1 2 3 4 5 6 7 8 9 10 11字符 m a d a m i m a d a m 现在,火星人定义了一个函数LCQ(x, y),表示:该字符串中第x个字符开始的字串,与该字符串中第y个...原创 2018-09-18 21:33:16 · 343 阅读 · 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 评论 -
清华集训2016 温暖会指引我们前行
Description寒冬又一次肆虐了北国大地无情的北风穿透了人们御寒的衣物可怜虫们在冬夜中发出无助的哀嚎“冻死宝宝了!”这时远处的天边出现了一位火焰之神“我将赐予你们温暖和希望!”只见他的身体中喷射出火焰之力通过坚固的钢铁,传遍了千家万户这时,只听见人们欢呼“暖气来啦!”任务描述:虽然小R住的宿舍楼早已来了暖气,但是由于某些原因,宿舍楼中的某些窗户仍然开着(例如厕所的...原创 2018-09-06 20:45:42 · 202 阅读 · 0 评论 -
BZOJ2594 水管局长(数据加强版)
DescriptionSC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处运往y处,嘟嘟需要为供水公司找到一条从A至B的水管的路径,接着通过信息化的控制中心通知路径上的水管进入准备送水状态,等到路径上每一条水管都准备好了,供水公司就可以开始送水了。嘟嘟一次只能处理一项送水任务,等到当前的送水任务完成了,才...原创 2018-09-06 19:38:07 · 208 阅读 · 0 评论 -
HNOI2012 永无乡
题目链接:https://www.luogu.org/problemnew/show/P3224splay启发式合并模板,小splay往大splay插,感性理解,一个点最多插logn次,插一次logn,n个点,nlognlogn~#include<bits/stdc++.h>using namespace std;#define Inc(i,L,r) for(regist...原创 2018-08-25 15:03:49 · 237 阅读 · 0 评论 -
BZOJ4919 大根堆
Description给定一棵n个节点的有根树,编号依次为1到n,其中1号点为根节点。每个点有一个权值v_i。你需要将这棵树转化成一个大根堆。确切地说,你需要选择尽可能多的节点,满足大根堆的性质:对于任意两个点i,j,如果i在树上是j的祖先,那么v_i>v_j。请计算可选的最多的点数,注意这些点不必形成这棵树的一个连通子树。Input第一行包含一个正整数n(1<=n<...原创 2018-08-24 21:32:00 · 399 阅读 · 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 评论 -
USACO 2009 January Gold 安全路径
DescriptionGremlins最近在农场上泛滥,它们经常会阻止牛们从农庄(牛棚_1)走到别的牛棚(牛_i的目的地是牛棚_i)。每一个gremlin只认识牛_i并且知道牛_i一般走到牛棚_i的最短路经。所以它们在牛_i到牛棚_i之前的最后一条牛路上等牛_i,当然,牛不愿意遇到Gremlins,所以准备找一条稍微不同的路经从牛棚_1走到牛棚_i,所以,请你为每一头牛_i找出避免gremli...原创 2018-08-15 21:01:18 · 285 阅读 · 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 评论 -
(倍增)假期旅行
一道倍增题。设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 评论 -
BZOJ 3331压力
【问题描述】如今,路由器和交换机构建起了互联网的骨架。处在互联网的骨干位置的核心路由器典型的要处理100Gbit/s的网络流量。他们每天都生活在巨大的压力之下。 小强建立了一个模型。这世界上有N个网络设备,他们之间有M个双向的链接。这个世界是连通的。在一段时间里,有Q个数据包要从一个网络设备发送到另一个网络设备。一个网络设备承受的压力有多大呢?很显然,这取决于Q个数据包各自走的路径。不...原创 2018-09-25 15:30:16 · 302 阅读 · 0 评论 -
[HZOI 2016] 偏序 COGS2479
给定四元组(d1,d2,d3,d4)求d1<d1'&&d2<d2'&&d3<d3'&&d4<d4'的个数。沿用cdq三维偏序的思想,先保证d1有序,对d1分治->(l,d2,d3,d4),(r,d2,d3,d4),然后我们对d2进行合并->(l/r,l/r,d3,d4),(l/r,l/r,d3,d4),然后就是...原创 2018-10-28 21:27:57 · 342 阅读 · 0 评论 -
整体二分——带修改区间第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-10-20 15:01:35 · 1239 阅读 · 0 评论 -
简单题(在线版)
题目大意:给你一个N*N的棋盘,每个格子初始值v=0,支持两种操作:1、v(x,y)+=k2、query(x1,y1,x2,y2)Input输入文件第一行一个正整数N。接下来每行一个操作。每条命令除第一个数字之外,均要异或上一次输出的答案last_ans。初始last_ans=0Output对于每个2操作,输出一个对应的答案。Sample Input41 2...原创 2018-10-11 07:44:21 · 1041 阅读 · 0 评论 -
简单题
题目大意:你有一个N*N的棋盘,每个格子初始值v=0,现在要求你支持两种操作:1、v(x,y)+=d2、getsum(x1,y1,x2,y2)Input输入文件第一行一个正整数N。接下来每行一个操作。Output对于每个2操作,输出一个对应的答案。Sample Input41 2 3 32 1 1 3 31 2 2 22 2 2 3 43Samp...原创 2018-10-10 21:39:45 · 266 阅读 · 0 评论 -
HDU 5126 stars(4维偏序)
Description约翰喜欢看天空。 一天有Q次。 每次约翰会在天空中找到一颗新星,或者他想知道(x1,y1,z1)和(x2,y2,z2)之间有多少颗星。Input第一行包含一个整数T(1≤T≤10)(小于6的Q> 100的数据),表示测试用例的数量。第一行包含一个整数Q(1≤Q≤50000),表示一天中有多少次。接下来Q行包含一些整数,首先输入一个整数A(1≤A≤2)。如...原创 2018-10-10 20:46:17 · 318 阅读 · 0 评论 -
AHOI2008 矩形
Description 第一象限内有N个平行于坐标轴的矩形。你的任务非常简单,那就是计算有多少个矩形,至少被一个矩形包含。Input 第一行包含一个整数N,表示矩形的个数。接下来N行,每行用4个整数x1,y1,x2,y2描述了一个矩形。其中(x1,y1)表示这个矩形左下角的坐标,(x2,y2)表示右上角的坐标。Output 只包含一个整数,表示你得到的答案。Sampl...原创 2018-10-10 19:06:08 · 170 阅读 · 0 评论 -
HDU4348 To the moon
题目大意:给你n个数,开始时间为0,按照操作输出给你四种操作:1、C l r d : 在(l,r)区间都加上d,++时间戳2、Q l r : 询问现在(l,r)的区间和3、H l r t : 询问在t时间的(l,r)的区间和4、B t : 直接回到t的时间主席树维护区间标记,标记永久化来写。pushdown的话会多开许多节点,很难受。记住一句话:更新节点要新开节点...原创 2018-09-28 17:44:14 · 216 阅读 · 0 评论 -
BZOJ 2716/2648 SJY摆棋子
Description 这天,SJY显得无聊。在家自己玩。在一个棋盘上,有N个黑色棋子。他每次要么放到棋盘上一个黑色棋子,要么放上一个白色棋子,如果是白色棋子,他会找出距离这个白色棋子最近的黑色棋子。此处的距离是 曼哈顿距离 即(|x1-x2|+|y1-y2|) 。现在给出N<=500000个初始棋子。和M<=500000个操作。对于每个白色棋子,输出距离这个白色棋子最近的黑色棋...原创 2018-09-27 21:55:41 · 3976 阅读 · 0 评论 -
SNOI2017 炸弹(#loj2255)
loj上前面跑得很快的魔法代码骚短。(但是很容易被hack,这些人co标都不带脑子么 = =)正解:很明显有个朴素的暴力解法,对于每个炸弹,我们像它能影响的范围内的炸弹都连一条边,最后只需统计一遍size即可,但是n^2会挂掉,所以就有了线段树建图优化(并查集貌似也可以)。于是乎,我也想要自暴自弃了= =线段树建图调的我心态爆炸,然后我就总结出了这道题的几个值得注意的地方:1、内存...原创 2018-09-21 20:58:47 · 257 阅读 · 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 评论 -
DSU——树上的文艺的暴力
Description一个有根树,以1为根。多次询问,每次询问u的k级后代有多少个。Input第一行两个数N,M表示树的大小和询问个数之后N-1行每行两个数a b表示a和b之间有一条边之后M行每行两个数u,k表示一个询问,问u的k级后代有多少个Output输出M行,代表每个询问的答案Sample Input7 12 13 14 25 26 3...原创 2018-09-20 20:23:32 · 557 阅读 · 0 评论 -
USACO 2015 Dec Gold 最大流
Description给定一棵有N个点的树,所有节点的权值都为0。有K次操作,每次指定两个点s,t,将s到t路径上所有点的权值都加一。请输出K次操作完毕后权值最大的那个点的权值。Input第一行,两个整数N(2≤N≤50,000)和K(1≤K≤100,000)。 接下来N-1行,每行两个整数a和b,表示a和b有边(x≠y)。 接下来K行,每行两个整数s和t,表示一个操作的起止点。O...原创 2018-07-20 16:48:38 · 145 阅读 · 0 评论 -
CODEVS 2370小机房的树
题目描述 Description小机房有棵焕狗种的树,树上有N个节点,节点标号为0到N-1,有两只虫子名叫飘狗和大吉狗,分居在两个不同的节点上。有一天,他们想爬到一个节点上去搞基,但是作为两只虫子,他们不想花费太多精力。已知从某个节点爬到其父亲节点要花费 c 的能量(从父亲节点爬到此节点也相同),他们想找出一条花费精力最短的路,以使得搞基的时候精力旺盛,他们找到你要你设计一个程序来找到这条路,...原创 2018-07-20 16:30:31 · 204 阅读 · 0 评论 -
BZOJ4184 shallot葱苗
Description 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏。 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且 让小葱从自己手中的小葱苗里选出一些小葱苗使得选出的小葱苗上的数字的异或和最大。 这种小问题对于小葱来说当然不在话下,但是他的身边没有电脑,于是他打电话给同为Oi选手的你,你能帮帮他吗? ...原创 2018-07-14 16:57:29 · 334 阅读 · 0 评论 -
ZJOI2008 树的统计
Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。 我们将以下面的形式来要求你对这棵树完成一些操作: I.CHANGE u t : 把结点u的权值改为t II.QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III.QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u...原创 2018-07-17 21:19:49 · 254 阅读 · 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 评论 -
#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 评论 -
CQOI2014 排序机械臂
Description 为了把工厂中 高低不等的物品按从低到高排好序,工程师发明了一种排序机械臂。它遵循一个简单的排序规则,第一次操作找到最低的物品位置P1,并把从左起第1个至第P1个之间的物品反序;第二次找到第二低的物品的位置P2,并把左起第二个至第P2个之间的物品反序……最终所有的物品都会被排好序。 上图给出一个示例,第一次操作前,最低物品在位置4,于是把第1至第4...原创 2018-07-17 14:38:57 · 268 阅读 · 0 评论 -
BZOJ3223 文艺平衡树
Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1Input 第一行为n,m n表示初始序列有n个数,这个序列依次是(1,2……n-1,n) m表示翻转操作次数 接下来m行每行两个数[L,R] 数据保证 1<=L<...原创 2018-07-17 12:41:04 · 180 阅读 · 0 评论 -
Chef and Churu
Chef and Churu定义函数f[i]=a[li]+……+a[ri]两个操作,修改a[i]为k;查询f[l]+……+f[r]题目链接#include<bits/stdc++.h>using namespace std;#define Inc(i,L,r) for(register int i=(L);i<=(r);++i)#define ll uns...原创 2018-07-12 11:08:14 · 338 阅读 · 0 评论 -
SDOI2007 超级数组
Description 一般的数组大家都经常使用,相信很多同学没有见过下面的超级数组。 超级数组存储的是一些正整数,它还支持下面的两个操作1.插入一个元素,命令是 "i key" 。 key 是要插入的数。2.输出第 k 大元素并删除该元素,命令是 "d k"。输出第 k 大元素并删除它。“第 k 大”是指:现有的数中,如果从小到大排好序,从最小的开始作为第一大算起,一直数到第 k...原创 2018-07-16 21:24:15 · 289 阅读 · 0 评论 -
HNOI2004 宠物收养所
Description最近,阿Q开了一间宠物收养所。收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。 每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在收养所的宠物一个特点值。这样他就能够很方便的处理整个领养宠物的过程了,宠物收养所总是会有...原创 2018-07-16 19:59:03 · 188 阅读 · 0 评论 -
BZOJ3224 普通平衡树
Description您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. 查询x数的排名(若有多个相同的数,因输出最小的排名)4. 查询排名为x的数5. 求x的前驱(前驱定义为小于x,且最大的数)6. 求x的后继(后继定义为大于x,且最小的数)Input 第一行为n,表示操作的个数...原创 2018-07-16 18:46:35 · 139 阅读 · 0 评论 -
虚树模板
虚树(建树):所谓虚树,其实就是将原树缩小,即保留适当的重要节点(我们称为key point),对于此类问题,显然只有key point影响答案,因此我们只需对这些key point进行操作。适用范围:数据很大,关键节点较少虚树考得还是其它算法应用,只是套了一层虚树的壳,因此,我们只需明确如何处理虚树即可。#include<bits/stdc++.h>#define...原创 2018-06-10 15:08:03 · 238 阅读 · 0 评论 -
splay单旋双旋对比
splay单双旋还挺有意思的,一直觉得单旋是ok的,但是感性画图分析了一波~单旋:直接旋转我自己双旋:先旋转我的父亲,再旋转我自己对于链结构,我们需要双旋,画图之后发现,我们采用双旋会至少压一层,而单旋则一直维持链式结构,显然单旋会被卡成O(n)其余的结构而言,单旋双旋并无多大区别,但需要注意的是,双旋也存在一种结构被卡,但卡成连后就会被压层,而单旋则可能一直被卡,因此均摊复杂度还...原创 2018-06-15 21:40:15 · 1236 阅读 · 0 评论