
---数据结构---
文章平均质量分 80
Park Corsa
吃早餐,多运动,不熬夜,常反思
展开
-
洛谷P2048 [NOI2010] 超级钢琴
题面大意:给定长为nnn的序列,求长度在[L,R][L,R][L,R]区间和前kkk大子区间之和首先区间和我们可以转换成前缀和之差即sum[l,r]=s[r]−s[l−1]sum[l,r]=s[r]-s[l-1]sum[l,r]=s[r]−s[l−1]暴力的做法是先枚举左端点lll,然后暴力枚举长度合法的区间对应的右端点rrr,找出这些区间和,然后取出前kkk大显然过不了是吧……别急,我们再来看一下刚才这个暴力的思路ans=∑(s[r]−s[l−1])(1≤l≤r≤n)ans=\sum(s[r]原创 2021-08-21 20:44:36 · 303 阅读 · 0 评论 -
[FROM LUOGU]Mivik的神力
传送门SOL首先max的答案改变肯定是在每一个数的右边第一个比它大的位置,用单调栈记录一下,连个边就好了说白了,就是从l开始,每次跳边去找右边第一个比它大的数,依次统计答案显然可以倍增实现跳链的过程(然而我一开始并没有意识到我写的是倍增)注意 一定一定一定要加有向边,否则多半要挂的代码:#include<bits/stdc++.h>#define re register...原创 2019-11-10 12:41:03 · 447 阅读 · 0 评论 -
[FROM LUOGU][Violet]蒲公英
传送门SOL暴力枚举肯定会T因此我们需要思考如何快速维护区间众数线段树之类的数据结构复杂度较好,但是在这种情况下不能够区间合并(区间众数合并之后不一定还是众数),而且这道题也没有修改操作再看看这个不大不小的数据规模,应该是O(N∗N)O(N*\sqrt N)O(N∗N)的算法,于是考虑分块分块虽然也不能支持区间合并,但是我们可以利用分块特性预处理出每个块的答案用一个intintin...原创 2019-11-08 20:22:18 · 133 阅读 · 0 评论 -
[FROM BZOJ]最假女选手
传送门SOL这不是普通的线段树,要使用线段树Beats(又称吉司机线段树)其他操作都好说,主要来讲一讲2、3操作,也就是Beats的不同之处2、3其实是一样的,这里以 操作2 为例讲一讲具体实现操作2:把一个区间[L,R] 里小于x 的数变成x如果暴力修改叶子节点,复杂度就是O(N2logN)O(N^2logN)O(N2logN)的,肯定炸了,Beats的优点在于它额外维护了几个值——...原创 2019-11-07 14:26:33 · 334 阅读 · 0 评论 -
[FROM LUOGU]列队
传送门SOL注意到每次离队只涉及某一行以及最后一列于是可以考虑维护n+1棵线段树,动态开点即可前n棵维护每行前m-1个数第n+1棵维护第m列的数每次(x,y)离队如果y=m,直接丢到第n+1棵线段树最后否则先丢到第x棵线段树最后,转为(x,m)离队之后再执行上述操作代码:#include<bits/stdc++.h>using namespace std;#de...原创 2019-10-28 11:59:15 · 100 阅读 · 0 评论 -
[FROM LUOGU]开车旅行
传送门SOL70pts的很好做,暴力预处理之后直接回答即可,复杂度O(N2)O(N^2)O(N2)100pts的其实只需要加一个倍增(和一个Set/双向链表)先说说预处理,设nxt[i][0]nxt[i][0]nxt[i][0],dis[i][0]dis[i][0]dis[i][0]表示从iii出发到最近的点及到这个点的距离设nxt[i][1]nxt[i][1]nxt[i][1],di...原创 2019-10-28 11:00:26 · 117 阅读 · 0 评论 -
[FROM LUOGU]火柴排队
传送门为什么是提高+/省选- 啊(SOL其实怎样的顺序最优是很显然的,不过这里我还是给出一个证明要证明aiaiai和bibibi按大小顺序一一对应为最优,我们只需证明一个子问题即可设在排过序后的火柴序列中选取i<ji<ji<j,那么ai<aj,bi<bjai<aj,bi<bjai<aj,bi<bj,若调换其位置,那么答案的变化即为:...原创 2019-10-26 21:38:24 · 209 阅读 · 0 评论 -
[FROM LUOGU]P1600 【NOIP2016DAY1T2】天天爱跑步
P1600 天天爱跑步题面小c同学认为跑步非常有趣,于是决定制作一款叫做《天天爱跑步》的游戏。《天天爱跑步》是一个养成类游戏,需要玩家每天按时上线,完成打卡任务。这个游戏的地图可以看作一一棵包含 n个结点和 n-1条边的树, 每条边连接两个结点,且任意两个结点存在一条路径互相可达。树上结点编号为从1到n的连续正整数。现在有m个玩家,第ii个玩家的起点为 S_i ,终点为 T_i。每天打卡...原创 2019-08-08 21:10:06 · 329 阅读 · 0 评论 -
[FROM WOJ]#2978 「BJOI2014」大融合
#2978 「BJOI2014」大融合题面小强要在 N 个孤立的星球上建立起一套通信系统。这套通信系统就是连接 N 个点的一个树。这个树的边是一条一条添加上去的。在某个时刻,一条边的负载就是它所在的当前能够联通的树上路过它的简单路径的数量。现在,你的任务就是随着边的添加,动态的回答小强对于某些边的负载的询问。输入第一行包含两个整数 N,Q,表示星球的数量和操作的数量。星球从 1 开始编号...原创 2019-08-09 11:51:09 · 136 阅读 · 0 评论 -
[FROM WOJ]#2783 【离线可过】动态图连通性【模板】
#2783 【离线可过】动态图连通性【模板】题面你要维护一张无向简单图。你被要求加入删除一条边及查询两个点是否连通。0:加入一条边。保证它不存在。1:删除一条边。保证它存在。2:查询两个点是否联通。输入输入的第一行是两个数 N M。N≤5000,M≤500000。接下来 M 行,每一行三个数 op x y。op 表示操作编号。样例输入200 52 123 1270 123 ...原创 2019-08-09 11:54:14 · 614 阅读 · 0 评论 -
[FROM WOJ]#3968 [IOI2011] Race
#3968 [IOI2011] Race题面给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小.输入第一行 两个整数 n, k第二…n行 每行三个整数 表示一条无向边的两端和权值 (注意点的编号从0开始)输出一个整数 表示最小边数量 如果不存在这样的路径 输出-1样例输入4 30 1 11 2 21 3 4样例输出2数据规模n≤2e5,k≤1e6n≤2e...原创 2019-08-07 12:07:43 · 216 阅读 · 0 评论 -
[FROM WOJ]#4492 【bzoj4025】二分图
#4492 【bzoj4025】二分图题面神犇有一个n个节点的图。因为神犇是神犇,所以在T时间内一些边会出现后消失。神犇要求出每一时间段内这个图是否是二分图。这么简单的问题神犇当然会做了,于是他想考考你输入输入数据的第一行是三个整数n,m,T。第2行到第m+1行,每行4个整数u,v,start,end。第i+1行的四个整数表示第i条边连接u,v两个点,这条边在start时刻出现,在第en...原创 2019-08-09 16:57:38 · 191 阅读 · 0 评论 -
[FROM LUOGU]P3201 [HNOI2009]梦幻布丁
P3201 [HNOI2009]梦幻布丁传送门SOLO(n2)O(n^2)O(n2)做法:先按颜色将每一个点用邻接表存储,记录每条链的始末和sizsizsiz由于有些颜色可能后来被合并掉了,修改时可能找不到目标,因此用fa[c[i]]fa[c[i]]fa[c[i]]记录一下对应的链对于每一个修改操作直接暴力修改答案,然后暴力重新染色,然后将一条链接到另一条的后面O(n(log&nbs...原创 2019-10-06 15:47:37 · 127 阅读 · 0 评论 -
[FROM WOJ]#3604 [POI2014]HOT_Hotels(数据有加强)
#3604 [POI2014]HOT_Hotels(数据有加强)题面有一个树形结构的宾馆,n (1≤n≤100 000)个房间,n-1条无向边,每条边的长度相同,任意两个房间可以相互到达。吉丽要给他的三个妹子各开(一个)房(间)。三个妹子住的房间要互不相同(否则要打起来了),为了让吉丽满意,你需要让三个房间两两距离相同。 有多少种方案能让吉丽满意?输入第一行一个数n。接下来n-1行,每行...原创 2019-08-01 21:06:29 · 219 阅读 · 0 评论 -
[FROM WOJ]#4317 谈笑风生
#4317 谈笑风生bzoj3653题面设T 为一棵有根树,我们做如下的定义:设a和b为T 中的两个不同节点。如果a是b的祖先,那么称“a比b不知道 高明到哪里去了”。设a 和 b 为 T 中的两个不同节点。如果 a 与 b 在树上的距离不超过某个给定 常数x,那么称“a 与b 谈笑风生”。给定一棵n个节点的有根树T,节点的编号为1 到 n,根节点为1号节点。你需要回答q 个询问,询...原创 2019-08-01 21:02:45 · 192 阅读 · 0 评论 -
[FROM WOJ]#2578 下雨了
#2578 下雨了题面给出一张N*M的图,图中每个点有一个权值,代表这个点的高度,这个图因为下了雨,所以每秒钟海平面的高度会上升1,所以在某些时间,一些点会被完全的淹没掉,现在给出Q个询问,每个询问给出一个时间t,表示查询在时间t时还没有被淹的点所组成的连通块个数.输入第一行两个整数N,M接下来N行,每行M个整数,分别表示第(i,j)点的高度.接下来一个整数Q,表示询问个数接下来一行...原创 2019-08-02 21:32:11 · 226 阅读 · 0 评论 -
[FROM WOJ]#2161 罗马游戏(bzoj1455)
#2161 罗马游戏可并堆模板题题面罗马皇帝很喜欢玩杀人游戏。 他的军队里面有n个人,每个人都是一个独立的团。最近举行了一次平面几何测试,每个人都得到了一个分数。 皇帝很喜欢平面几何,他对那些得分很低的人嗤之以鼻。他决定玩这样一个游戏。 它可以发两种命令:Merger(i, j)。把i所在的团和j所在的团合并成一个团。如果i, j有一个人是死人,那么就忽略该命令。Kill(i)。...原创 2019-11-07 09:55:10 · 200 阅读 · 0 评论 -
[FROM WOJ]#2614[Poi2014]Couriers(看主席树模板请进)
@[TOC]#2614[Poi2014]Couriers主席树模板题题面给一个长度为n的序列a。1≤a[i]≤n。【数据范围】n,m≤500000m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2。如果存在,输出这个数,否则输出0。输入第一行两个数n,m。 第二行n个数,a[i]。 接下来m行,每行两个数l,r,表示询问[l,r]这个...原创 2019-02-11 21:42:21 · 205 阅读 · 0 评论 -
[FROM WOJ]#1903 第k大的数
@[TOC]#1903 第k大的数主席树模版题题面你为Macrohard公司的数据结构部门工作,你的工作是重新写一个数据结构,这个数据结构能快速地找到一段数列中第k大的数。就是说,给定一个整数数列a[1…n],其中每个元素都不相同,你的程序要能回答一组格式为Q (i , j , k)的查询,Q(i, j ,k)的意思是“在a[i…j]中第k大的数是多少?”例如令 a = {1, 5, 2...原创 2019-02-11 15:09:29 · 199 阅读 · 0 评论 -
[FROM WOJ]#1749 树的统计(zjoi2008)
#1749 树的统计题面一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作:I. CHANGE u t : 把结点u的权值改为tII. QMAX u v: 询问从点u到点v的路径上的节点的最大权值III. QSUM u v: 询问从点u到点v的路径上的节点的权值和注意:从点u到点v的路径上的节点包括u和v本身对于100%的数...原创 2019-02-24 23:16:19 · 279 阅读 · 0 评论 -
[VIJOS]lxhgww的奇思妙想
Vijos lxhgww的奇思妙想题面lxhgww 在树上玩耍时,LZX2019 走了过来。lxhgww 突然问道:“我现在的k级祖先是谁?”LZX2019 答道:“不是我吗?”。接着 lxhgww 就用教主之力让 LZX2019 消失了,现在他转过头准备向你求助。数据范围:1≤N≤300000,M≤18000001 ≤ N ≤300000, M ≤ 18000001≤N≤300000,...原创 2019-03-16 12:07:34 · 393 阅读 · 0 评论 -
[FROM WOJ]#2897 「HAOI2015」树上操作
#2897 「HAOI2015」树上操作题面有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个操作,分为三种:1:把某个节点 x 的点权增加 a 。2:把某个节点 x 为根的子树中所有点的点权都增加 a 。3:询问某个节点 x 到根的路径中所有点的点权和。输入第一行包含两个整数 N,M。表示点数和操作数。接下来一行 N 个整数,表示树中节点的初始权值。接下来 N...原创 2019-03-17 13:30:23 · 230 阅读 · 0 评论 -
[FROM WOJ]#2495 LazyChild修网络
#2495 LazyChild修网络题面由于学校机房的网络出现了很大的问题,很多电脑都经常断网,只有不断的改IP才能正常上网.这显然给大家带来了很大的不遍.由于LazyChild的Rp很高, 所以这次网络出问题唯独没有影响到的就是LazyChild的电脑.LazyChild为了使自己的Rp更高,准备帮助其他人修好他们的网络,使两台电脑能够正常联网.由于网线长度d有限,所以只有两台电脑的距离小于...原创 2019-03-17 15:47:53 · 251 阅读 · 0 评论 -
[FROM WOJ]#1935 魔法树
#1935 魔法树题面Harry Potter 新学了一种魔法:可以让改变树上的果子个数。满心欢喜的他找到了一个巨大的果树,来试验他的新法术。这棵果树共有N个节点,其中节点0是根节点,每个节点u的父亲记为fa[u],保证有fa[u] < u。初始时,这棵果树上的果子都被 Dumbledore 用魔法清除掉了, 所以这个果树的每个节点上都没有果子(即0个果子)。不幸的是, Harry ...原创 2019-03-24 15:54:36 · 216 阅读 · 0 评论 -
[FROM WOJ]#2445 普通平衡树
#2445 普通平衡树输入您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:插入x数删除x数(若有多个相同的数,因只删除一个)查询x数的排名(若有多个相同的数,因输出最小的排名)查询排名为x的数求x的前驱(前驱定义为小于x,且最大的数)求x的后继(后继定义为大于x,且最小的数)输出第一行为n,表示操作的个数,下面n行每行有两个数opt和x,opt表示操...原创 2019-04-06 16:48:10 · 193 阅读 · 0 评论 -
[FROM WOJ]#4479 长跑
#4479 长跑题面 某校开展了同学们喜闻乐见的阳光长跑活动。为了能“为祖国健康工作五十年”,同学们纷纷离开寝室,离开教室,离开实验室,到操场参加3000米长跑运动。一时间操场上熙熙攘攘,摩肩接踵,盛况空前。为了让同学们更好地监督自己,学校推行了刷卡机制。学校中有n个地点,用1到n的整数表示,每个地点设有若干个刷卡机。有以下三类事件:1、修建了一条连接A地点和B地点的跑道。2、A点的...原创 2019-04-20 17:29:09 · 312 阅读 · 0 评论 -
[FROM WOJ]【BZOJ3730】【动态点分治模板题】#4532 震波
#4532 震波题面在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i]。不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发生变动。接下来你需要在线处理M次操作:0 x k 表示发生了一次地震,震中城市为x,影响范围为k,所有与x距离不超过k的城市都将受到影响,该次地震造成的经济损失为所...原创 2019-05-18 14:25:19 · 161 阅读 · 0 评论 -
[FROM WOJ]#2443 L的鞋子
#2443 L的鞋子题面L是壕,他非常喜欢鞋子,他专门在他的别墅中修建了一个鞋柜,鞋柜是呈线性的,为了好找鞋子,他把他的鞋子分成了ccc种。虽然L没有小学毕业,但是对数字非常偏爱,他很忌讳奇数,因为他觉得不吉利(壕都是这样的)。他想知道对于一个区间[l,r][l,r][l,r]中,有多少种鞋子恰好出现正偶数次。共有10组测试数据1-4组n,m=500,2000,5000,10000,c=1...原创 2019-02-17 14:15:18 · 189 阅读 · 0 评论