随笔分类 - 数据结构
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4453 这种问题...一般先把询问离线,排序; 区间对后缀排名的影响在于一些排名大而位置靠后的后缀可能因为区间右端点截掉了后面而排名变小; 考虑如何影响:如果 i < j rk[i] > rk[
阅读全文
摘要:题目:https://www.luogu.org/record/show?rid=12702916 https://www.lydsy.com/JudgeOnline/problem.php?id=1168 一眼不可做...即使数据范围很小... #include<iostream> #includ
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1657 单调栈水题。 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2151 先都放进堆里取最大的,但选了一个就不能选它两边的,所以可能不是最优,要有“反悔”的措施; 可以取出一个后把它两边的位置 l,r 在链表中删除,然后再加入一个元素 a[x] = a[l]
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1098 首先,没有连边的人一定得在一个连通块里; 先把所有人连成一个链表,然后从第一个人开始,把和它有连边的人都打上标记,没有标记的就加入栈里,并在链表中删除; 只要栈里还有值,就重复这个操作,
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2083 先把所有子序列都存下来,总长度应该有限制,所以用 vector 存; 要做到 O(n),就得遍历原序列的同时匹配所有子序列; 注意到,遍历原序列,一个位置上只有一个值(当然啦); 所以考
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4668 按秩合并维护并查集的树结构,然后暴力找路径上的最大边权即可。 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2006 本来应该是可以用主席树,找区间最小值,取出来后再找那段区间的次小值...... 但也可以只找最小值,取出来后把原来区间分裂成两个,继续找最小值,用ST表即可; 发现自己还没写过 ST 表
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2276 维护 l 递减的单调队列,队头的 l > 当前的 r 就出队,因为不能是连续一段了; 注意答案是上一个出队的实际后一个位置开始,而不是队头的位置,因为不在队列里的那些位置 l 都比队头小
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1083 当初不会线段树的时候做这道题...对差分什么不太熟练,一直没A,放在那儿不管... 现在去看,线段树就直接秒了; 不过要注意一下基本的细节囧... 但本题 n 的范围比较微妙,正常线段树会 T 一个点(不过
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1116 分析性质,只要有环,那么给环定一下向就满足了条件; 环上点的其他边可以指向外面,所以两个连通块合并时只要一个有环,那么整个连通块就都可以了。 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4195 突然在这道大水题上WA了半天... 思路很简单,离线处理询问,先把 = 的都加到并查集里,再暴力判断 != 的; 然而WA了许多遍...对离散化还是太不熟悉了... 1.fa[] 数组的
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2442 设 f[i] 为答案,则有 f[i] = max { f[j] - s[j+1] } + s[i] ; 所以用单调队列维护 f[i] - s[i+1]; 没有1A!!原因是遍历的起点不是
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1588 使用双向链表! 离线做,先抽出来排个序,按排序确定每个位置的 pre 和 nxt ,然后倒序查找,找完一个就删除一个值,更改 pre 和 nxt。 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1047 就是先对行做一遍单调队列,再对那个结果按列做一遍单调队列即可。 代码如下:
阅读全文

浙公网安备 33010602011771号