---数据结构
文章平均质量分 58
BAJim_H
比孤独更可悲的事情,就是根本不知道自己很孤独,或者分明很孤独,却把自己都骗得相信自己不孤独。
展开
-
【数据结构】二进制分组解决一类强制在线问题
Text这种技巧来源于论文:许昊然《浅谈数据结构题的几个非经典解法》你需要对什么东西支持若干个修改和询问操作,强制在线,如果去掉强制在线,那么是可以对时间分治来解决的。换句话说,这类题目满足能够对于每个修改单独计算对每个询问的答案(修改之间是独立的)我们将修改操作每2的幂次分一组,每一组用数据结构维护当出现询问时,就暴力跳每一组,在组中的数据结构查询。出现新的修改时,就类似2048(逃...原创 2018-10-21 11:44:24 · 1458 阅读 · 0 评论 -
[JZOJ6074]【GDOI2019模拟2019.3.20】铁路【数据结构】【树状数组】【树链剖分】【线段树合并】
DescriptionSolution老年选手表示真的不太码的动。。。细节太多了,相当难写为啥XJ和ASDFZ的大佬们动不动一写就是6K,7K 300行啊,这也太能码了这题感觉还是蛮套路的。我们首先可以将边的中点也建一个点,现在就只会在点上相交了。分情况讨论要么是两个起点深度相同,一起向上走,走到这两个起点的lca处相交一种是一个起点在子树内,向上走,一个起点在子树外,向下走...原创 2019-03-20 22:13:21 · 287 阅读 · 1 评论 -
[JZOJ6050]【NOI2019模拟2019.3.11】树上四次求和 【数据结构】【树链剖分】【点分治】
DescriptionSolution一道很简单的题,自己没有想出来,相当不应该一开始我先想的假如直接询问w(i,j)怎么做,但是完全没有思路(后来发现询问w(i,j)比这题难的多)首先那个排列a似乎没什么用,那么以下的表示都忽略掉(把x看做a[x])先化一波式子,可以得到这个结果ansk=∑x=1k∑y=xkdis(x,y)×x(k−y+1)ans_k=\sum\limits_{...原创 2019-03-13 20:37:36 · 378 阅读 · 0 评论 -
[LibreOJ #2341]【WC2018】即时战略【交互】【LCT】
Description有一棵n个点的结构未知的树,初始时只有1号点是已被访问的。你可以调用交互库的询问函数explore(x,y),其中x是已访问的点,y是任意点。它会返回x向y方向走第一步的点,如果该点未被访问,则将其标记为已访问。你需要实现一个函数,它通过接口得到n和T,需要在T次explore操作内将所有的点标记(也就是说走完这棵树)。要求最严格的两档数据:n<=30000...原创 2019-03-31 21:41:30 · 205 阅读 · 0 评论 -
[JZOJ6086]【GDOI2019模拟2019.3.26】动态半平面交【数据结构】
Descriptionn强制在线n,q≤100000,a≤107n,q\leq 100000,a\leq 10^7n,q≤100000,a≤107Solution之前好像做过一道叫七彩树的题,是这题的弱化版。先考虑lcm,它实际上是每一个质因子的出现的指数取最大值然后乘积。这里我们有一个很妙的转化。考虑一个数aia_iai,它含有某一个因子pkp^kpk,其中p为质数。我们将p...原创 2019-03-28 14:43:12 · 296 阅读 · 0 评论 -
[JZOJ6089]【CodeChef 2014 April Challenge】Final Battle of Chef【数据结构】【整体二分】
Descriptionn,q,V≤100000,wi≤109n,q,V\leq 100000,w_i\leq 10^9n,q,V≤100000,wi≤109Solution又是一道大数据结构由于有一个下取整,这就导致了不同时间的修改值是不能简单的直接加在一起的。容易发现,1操作的影响只会影响到距离不超过log的点。这样我们很容易得到一个qlognlog2Vq\log n\log...原创 2019-03-28 15:38:48 · 258 阅读 · 0 评论 -
【PKUSC2019】树染色【线段树合并】【树形DP】
Description给出一棵n个点的树,现在有m种颜色,要给每个节点染色,相邻节点不能同色。另外有k条限制,形如x号点不能为颜色y同一节点有可能哟多条限制。求方案数对998244353取模的结果。Solution考场上一直在想怎么容斥做,怎么都弄不出来。学傻了。考虑暴力DP设f[i][j]f[i][j]f[i][j]为当前处理了以i为根的子树,i的颜色为j的方案数。记g[i]...原创 2019-05-29 11:54:54 · 814 阅读 · 0 评论 -
[JZOJ6223] 互膜 【线段树】【单调栈】【DP】
DescriptionSolution我们可以设一个朴素的DP记f[i][0/1]f[i][0/1]f[i][0/1]表示第i−1i-1i−1轮上一个人是否操作了i这个位置,当前先手-当前后手的权值的最大值。显然Ans=Sum+f[1][0]Ans=Sum+f[1][0]Ans=Sum+f[1][0]容易得到转移f[i][0]=−f[i+1][1]+s[i]f[i][0]=-f[i+1...原创 2019-06-30 22:15:18 · 219 阅读 · 0 评论 -
【杂题】[CodeForces 1172F] Nauuo and Bug【数据结构】【线段树】
Description给出一个长度为n的序列a和一个整数p有m组询问,每组询问给出一个区间[l,r][l,r][l,r]你需要给出下面这个过程的结果ans = 0 for i from l to r{ ans = ans + a[i] if ans > p then ans = ans - p;}return ans n≤106n\leq 10^6n≤106m&am...原创 2019-06-19 20:13:57 · 233 阅读 · 0 评论 -
【杂题】[CodeForces 1172E] Nauuo and ODT【LCT】【口胡】
Description给出一棵n个节点的树,每个点有一个1~n的颜色有m次操作,每次操作修改一个点的颜色需要在每次操作后回答树上n2n^2n2条路径每条路径经过的颜色种类数和。n,m<=400000n,m<=400000n,m<=400000Solution挺有意思的一个套路首先我们单独计算每种颜色的贡献,对于每种颜色的点集分开考虑,我们需要计算至少...原创 2019-06-16 22:16:13 · 295 阅读 · 0 评论 -
【GDSOI2019】滑稽二乘法【数据结构】【LCT】
Description点数<=100000,操作数<=200000Solution经典的LCT维护子树路径信息的问题。具体来说,我们对于每一个节点,它在splay上的子树对应了原树中的一条祖先后代链(换过根的),记录这个点的splay子树中的所有黑点以及它们的虚子树中的所有黑点分别到这条祖先后代链的链顶和链底的0次,1次,2次距离和,另外记录splay的子树的所有虚儿子到这条...原创 2019-06-26 20:24:22 · 293 阅读 · 0 评论 -
KD-Tree 学习小记+模板
Preface听说KD树实在是个大神器可以解决多维空间多维偏序点权和,可以求某个点的空间最近最远点就二维平面上的来说,复杂度在O(nlogn)O(n\log n)O(nlogn)到O(nn)O(n\sqrt n)O(nn)不等嫌KD树不平衡了还可以来一个替罪羊树式的暴力重构再也不用担心写不出树套树了!(狗头)Text这是个什么东西呢?在一维数轴上,可以简单的比较两个值的大小,我...原创 2019-03-08 22:42:35 · 259 阅读 · 0 评论 -
【USACO 2018 December Contest, Platinum Problem 2】Sort It Out [JZOJ100129] 排序【DP】【线段树】
Description以下是翻译魔改版题面:FJ有N条胖头鱼(分别用1…N编号)排成一行。FJ喜欢他的胖头鱼以升序排列,不幸的是现在他们的顺序被打乱了。在过去FJ曾经使用一些诸如“冒泡排序”的开创性的算法来使他的胖头鱼排好序,但今天他想偷个懒。取而代之,他会每次对着一条胖头鱼叫道“按顺序排好”。当一条胖头鱼被叫到的时候,他会确保自己在队伍中的顺序是正确的(从他的角度看来)。只要有一...原创 2019-02-27 10:16:14 · 386 阅读 · 0 评论 -
[JZOJ6030]【GDOI2019模拟2019.2.25】白白的【树套树】【数据结构】【启发式分裂】
DescriptionSolution只有0操作,我们相当于动态查询一段区间内比某个数大/小的数的个数,直接树套树维护。只有1操作,我们可以对于每一个白白的极长区间都维护一个权值线段树,每次分裂一个区间,直接暴力从线段树中一个个删去较小的那一半区间的影响,同时加入新的权值线段树,并相应计算。显然这两个数据结构互不影响,并且它们能够同时进行,那么合在一起就解决了。总时空复杂度均为O(n...原创 2019-02-25 22:07:10 · 272 阅读 · 0 评论 -
[JZOJ5924]【NOIP2018模拟10.23】Queue
DescriptionHack 国的居民人人都是 OI 大师,Hometown 得知便赶紧来到 Hack 国学习。可想要进入 Hack 国并不是件容易的事情,首先就必须通过 Hack 国海关小 B 的考验。小 B 觉得 Hometown 比较菜,于是就扔了一道小水题给 Hometown。给定一个长度为 n 的数列 a i ,接下来会对这个序列进行 m 次操作。操作类型分为以下两种:• 1 l...原创 2018-10-23 17:28:36 · 259 阅读 · 0 评论 -
[JZOJ5936]【NOIP2018模拟10.29】逛公园
Description策策同学特别喜欢逛公园,公园可以看做有n个景点的序列,每个景点会给策策带来di 的愉悦度,策策初始有x0 的愉悦度,然而愉悦度也是有上限的,他在每个景点的愉悦度上限为Li ,策策想要从 l 到 r这一段景点中选择一段景点参观(从这一段的左端点逛到这一段的右端点),策策想知道他最终的愉悦度的最大值是多少,你能帮帮他吗?(区间可以为空,也就是说答案最小为x0 )n,di,q...原创 2018-10-29 22:34:10 · 266 阅读 · 0 评论 -
[JZOJ5951] 锋芒毕露 (【CodeChef June Challenge 2014】Sereja and Arcs)【平衡规划】【计数】【树状数组】
Description给定一个长度为n的颜色序列a求四元组(x,y,p,q),x&lt;p&lt;y&lt;q,a[x]=a[y],a[p]=a[q],a[x]̸=a[p](x,y,p,q),x&lt;p&lt;y&lt;q,a[x]=a[y],a[p]=a[q],a[x]\not =a[p](x,y,p,q),x<p<y<q,...原创 2018-11-06 11:44:09 · 488 阅读 · 0 评论 -
【模板】非旋转Treap
Code#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>#include <cmath>#include <cstring>#define fo(i,a,b) for(int i=a;i<=b;++i)#d...原创 2018-11-29 17:07:34 · 220 阅读 · 0 评论 -
【杂题】[BZOJ4573][UOJ#195]【ZJOI2016】大森林【数据结构】【LCT】
Description小Y家里有一个大森林,里面有 n 棵树,编号从 1到 n 。一开始这些树都只是树苗,只有一个节点,标号为 1 。这些树都有一个特殊的节点,我们称之为生长节点,这些节点有生长出子节点的能力。小Y掌握了一种魔法,能让第 l 棵树到第 r棵树的生长节点长出一个子节点。同时她还能修改第 l 棵树到第 r棵树的生长节点。她告诉了你她使用魔法的记录,你能不能管理她家的森林,并且回答...原创 2018-12-04 16:32:41 · 249 阅读 · 0 评论 -
【杂题】[CodeForces 1076G] Array Game【数据结构】【博弈】
原题链接:http://codeforces.com/problemset/problem/1076/GDescription考虑这样一个博弈你有一个序列B,一开始有一个棋子在B的第一个位置。双方轮流操作,第一次操作前将B[1]-1游戏有一个参数m,操作以下面的形式进行假设当前棋子在位置x,当前操作的一方需要选择一个位置y∈[x,x+m]y\in[x,x+m]y∈[x,x+m],且B...原创 2018-11-27 16:42:34 · 687 阅读 · 0 评论 -
【2018.12.22模拟赛】Party【启发式合并】【数据结构】(无实现)
Description给出了一棵以1为根的有n个节点的树。m组询问,每个询问选择一个区间[l,r]。你需要回答满足z∈[1,n]z\in [1,n]z∈[1,n]且存在x,y∈[l,r]x,y\in[l,r]x,y∈[l,r]使得lca(x,y)=zlca(x,y)=zlca(x,y)=z的zzz的个数。n,m≤3×105n,m\leq 3\times10^5n,m≤3×105Sol...原创 2018-12-26 22:32:06 · 230 阅读 · 0 评论 -
[JZOJ2724] 圆【计算几何】【数据结构】【DP】
Description二维坐标平面内有n个圆,第i个圆圆心在(Xi,Yi),半径为Ri,权值Vi。任何两个圆都不会相交(也不会相切),但是圆与圆之间可能存在包含关系。当我们在一个圆里面的时候,我们必须经过它的边界一次,才能走出这个圆。对于不同的两个圆A、B,如果可以从A到B且经过不超过K次边界,则称A、B是连通的。现在的问题是:对于所有的连通的一对圆(A,B),权值差的绝对值最大有多少。即找到...原创 2019-02-21 15:24:34 · 327 阅读 · 0 评论 -
【杂题】[CodeForces 827 F] Dirty Arkady's Kitchen【DP】【最短路】【堆】
原题链接:http://codeforces.com/problemset/problem/827/FDescription给出一张n个点,m条边的无向图,经过每条边所花费的时间均为1每一条边有一个出现时间区间[l,r][l,r][l,r],也就是说,你只能在[l,r−1][l,r-1][l,r−1]这一个时间区间内进入这条边,并且进入就不能回头,只能走到另一个端点。你在时刻0时在1号点,...原创 2019-02-22 21:12:17 · 304 阅读 · 0 评论 -
[JZOJ6028]【GDOI2019模拟2019.2.23】字符串【SAM】【LCT】【线段树】
DescriptionSolution不妨先考虑subtask 2即给出一个字符串S,动态询问[l,r]内本质不同的子串数。有一个非常套路的做法(来自laofu的2018集训队论文):考虑离线。先将这个字符串S的SAM建出来对于SAM上的一个节点,贡献就是它在[l…r]出现的最后一次被l所截的长度。我们将所有询问按右端点排序,从左到右扫r。那么每次相当于在parent树上将一个...原创 2019-02-25 07:41:51 · 387 阅读 · 0 评论 -
[JZOJ6241]【NOI2019模拟2019.6.29】字符串【数据结构】【字符串】
Description给出一个长为n的字符串SSS和一个长为n的序列aaa定义一个函数f(l,r)f(l,r)f(l,r)表示子串S[l..r]S[l..r]S[l..r]的任意两个后缀的最长公共前缀的最大值。现在有q组询问,每组询问给出L,R,xL,R,xL,R,x你需要找到一个子串S[l,r]S[l,r]S[l,r]满足[l,r]⊂[L,R][l,r]\subset[L,R][l,r]...原创 2019-06-30 22:29:59 · 240 阅读 · 0 评论