数据结构
文章平均质量分 52
ergedathunder
我见青山多妩媚,料青山见我应如是
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces Round #767 (Div. 1) E. Groceries in Meteor Town
题解还是妙啊。考虑每条边在什么时候成为答案,可以把边按照权值排序,从大到小枚举,对于当前枚举的边,它能将树分成两部分,只要路径的起点和终点分别在这两部分,当前边就成为答案。然后可以删掉这条边,递归子部分操作。如何快速求两个点路径之间的边权最大值呢?这里真的很妙,将每条边看作一个节点,按照上面的方法,每次删掉一条边,就将这条边所代表的节点和他分开的这两部分下一步要删的边分别连边,递归操作就可以形成一颗二叉树,而这个二叉树具有第一个极好的性质:我们将原树中每个点挂在他所连边代表的节点中深度最大的节点上,此时原创 2022-01-26 14:31:59 · 326 阅读 · 0 评论 -
2019-ICPC沈阳J题Graph
写这篇博客也是为了方便自己以后能够快速回顾LCT,再探索其其他的用途以后回顾LCT可以参考这篇博客:写的很清楚题目如下Rose would like to find whether they truly love each other.Rose lets Jack draw a graph of N vertices, and Rose herself writes a set of ve...原创 2020-03-12 18:29:18 · 328 阅读 · 0 评论 -
[NOI2016]优秀的拆分
题目实际上要求我们求从每个点出发的AA串的数量考虑点i的答案,发现如果前缀i与前缀j(j<=i)的最长公共后缀>=i-j,那么i点出发向前就存在一个长度为i-j的AA串,题目即求对于每个前缀,有多少个在他之前的前缀满足条件考虑后缀自动机,由于每个前缀都是后缀自动机parent树上的一点,即两个前缀的最长公共后缀为两个前缀点在parent树上的lca的len长度。考虑在lca处统...原创 2020-02-23 22:25:32 · 167 阅读 · 0 评论 -
bzoj 1901 && P2617 Dynamic Ranking
题目描述给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i]的值,改变后,程序还能针对改变后的a继续回答上面的问题。你需要编一个这样的程序,从输入文件中读入序列a,然后读入一系列的指令,包括询问指令和修改指令。对原创 2017-06-14 22:12:03 · 442 阅读 · 0 评论 -
HNOI2017 spaly题解
终于调过了,决定把这份巨屎无比的冗长代码贴上来 解题思路: 主要在于发现两个题目的性质: 1.对于插入操作,插入的元素只可能作为他前驱的右儿子或者后继的左儿子 2.旋转最大最小值,并不会改变树的结构,实质上就是把要删除的那个元素直接提到根节点(模拟即可证明)有了这两条性质,我们可以发现只需要维护这棵树的形态并能够在log内的复杂度求树上某个点的深度 于是我们就可以想原创 2017-12-17 09:24:36 · 300 阅读 · 0 评论 -
BZOJ 4560 [JLOI2016]字符串覆盖
这是一道如果没想清楚就不要乱打的题目, 否则就像我一样~~题目描述字符串A有N个子串B1,B2,…,Bn。如果将这n个子串分别放在恰好一个它在A中出现的位置上(子串之间可以重叠)这样A中的若干字符就被这N个子串覆盖了。问A中能被覆盖字符个数的最小值和最大值。 输入输出格式 输入格式:第一行包含一个正整数T,表示数据组数。保证T接下来依次描述T组数据,每组数据中:第一行包含原创 2018-01-08 14:57:44 · 590 阅读 · 0 评论
分享