
数据结构
文章平均质量分 59
数据结构,以及相关题目
CaptainHarryChen
I solemnly swear that I am up to no good.
展开
-
可持久化Treap
可持久化Treap只能使用非旋转版Treap。 非旋转Treap,即使用“合并”(Merge)和“分裂”(Split)两个操作来完成“插入”(Insert)和“删除” (Delete)操作。这样可以保证在进行插入和删除操作时,只改变一条链上的点,最多修改log2nlog_2n个结点。 可持久化Treap,就需要在插入和删除时,新建一条链的结点,作为一个新的版本。 #include<cstdio原创 2017-12-03 21:02:04 · 607 阅读 · 0 评论 -
【BZOJ5223】有理有据题(K-D树)
题目大意有n颗炸弹,第i颗炸弹的爆炸范围为[li,ri][l_i,r_i][li,ri].有m个房子,标号为i的房子为一条线段[ai,bi][a_i,b_i][ai,bi](只要房子线段与炸弹相交视为炸弹能摧毁房子)几种操作:A x y:增加一个房子[x,y][x,y][x,y],按顺序标号。C i:查询第i个炸弹能炸毁的连续标号的房子,最多连续多少个。Q:查询每个C 1~n...原创 2019-03-02 21:57:21 · 529 阅读 · 0 评论 -
【2019.1雅礼集训DAY2 T2】bracket(点分治+FFT)
题意给定一棵有 n 个节点的无根树,每个节点上是一个字符,要么是(,要么是)。定义 S(x, y) 为从 x 开始沿着最短路走到 y,将沿途经过的点上的字符依次连起来得到的字符串。合法括号序定义如下:1,()是合法的。2,若 A,合法,则(A)也合法。3,若 A,B 分别合法,则 AB 也合法。函数 f(x, y) 等于对 S(x, y) 进行划分,使得每一个部分都是合法括号序,能...原创 2019-01-10 11:54:07 · 730 阅读 · 0 评论 -
【2019.1雅礼集训 DAY1 T2】permutation(可持久化线段树)
题意给出nnn个数AiA_iAi定义排列一个 1~n 的排列 P 的价值为:∑i=1nAi×Pi\sum_{i=1}^n A_i\times P_ii=1∑nAi×Pi求出排列价值前kkk小的kkk个排列的价值。...原创 2019-01-09 20:54:39 · 568 阅读 · 0 评论 -
【CodeForces793E】Oleg and chess(扫描线+线段树+网络流)
题目大意给一个n×n (n≤10000)n\times n\ (n\leq 10000)n×n (n≤10000)的棋盘,有q (q≤10000)q\ (q\leq 10000)q (q≤10000)个不相交的矩形区域不能放棋子,在剩余的格子里最多能放多少个车,使得他们无法互相攻击。题解十分综合的题目如果nnn很小,对每一个横坐标和纵坐标建立一个结点...原创 2018-12-25 20:00:35 · 399 阅读 · 0 评论 -
【BZOJ2733】永无乡(平衡树)
题目大意:n个点,每个点有个重要度排名,初始有一些点是连着的,Q个操作,Q询问a所在连通块重要度排名为b的点编号,B连接ab。原创 2017-03-01 13:35:38 · 408 阅读 · 0 评论 -
动态树(LCT)错误总结
汇总犯过的一大堆神奇错误。访问儿子结点时,没有pushDown(),左右儿子未翻转。例:Node *findRoot(Node *u){ Access(u); Splay(u); //这里漏掉一句:u->pushDown(); while(u->ch[0]!=null) { u=u->ch[0]; ...原创 2018-03-25 10:38:19 · 307 阅读 · 0 评论 -
可持久化数据结构
可持久化数据结构,就是可以访问历史状态的数据结构,可以从任何一个历史版本更新出一个新的状态。like this↓ 有的数据结构还可以将其中一个版本与历史版本相减得到区间修改的信息,如权值线段树,Trie树等。实现基本上都有个套路,就是在修改数据结构信息时,将被修改的结点新建,结点之间的边保留,新建的结点就成为一个新的版本,并且将没修改的结点共用,节省空间。链接: 可持久化线段树原创 2017-12-03 20:22:40 · 402 阅读 · 1 评论 -
树链剖分
用途解决树的上路径修改,查询等操作,时间复杂度O(R×log2n)O(R\times log_2n)(R为维护的其它数据结构复杂度,一般为线段树R=log2nR=log_2n)。主要思路将整棵树的边分为轻边和重边,将每个重边连成的链当作一个区间,用维护区间的数据结构去维护它。如何选择重边一般选连接子树所含节点最多的儿子作为重边,如图: 这样可以保证从根节点到任何一个节点,最多只有log2nlo原创 2017-12-18 13:22:50 · 358 阅读 · 2 评论 -
【洛谷P4719】动态DP(全局平衡二叉树)
题目大意给定一棵n个点的树,点带点权。有m次操作,每次操作给定x,y,表示修改点x的权值为y。你需要在每次操作之后求出这棵树的最大权独立集的权值大小。题解如果不带修改操作,正常的DP式:dp[u][1]dp[u][1]dp[u][1]表示当前结点保证选择,这个结点的子树独立集最大权值。dp[u][0]dp[u][0]dp[u][0]表示当前结点不选择,这个结点的子树独立集最大权值。...原创 2019-03-23 15:51:19 · 571 阅读 · 0 评论