复杂数据结构
1|0复杂数据结构
一些巨大的数据结构题目
1|1CF1336F Journey
题意:给定一棵树和
思路:首先对链交的情况进行分类。
第一种是
第二种是
第三种是
1|2P5385 [Cnoi2019] 须臾幻境
题意:求一段区间内的边形成的连通块数。
牛逼题。对于求联通块数量,有一点小trick。
首先,如果在一棵树上断掉一些边,那么连通块是就是点数减边数。而转到图上,可以任取一颗生成树森林,此时的点数减去在生成树森林上的边数就是连通块数。
回到这道题,我们需要的是求出一段时间内存在于生成树森林上的边数,我们可以先顺序加边,用LCT实时维护生成树森林,即如果当前要加入的边的两端已经联通,就删掉路径上最早加入的边,用主席树存下每一条边存在的时间就可以了。
1|3P4848 崂山白花蛇草水
题意:在线带插入矩形第
思路:在线带插入矩形第k大,看起来就不可做,结果可以直接暴力,搞两个数组然后插入到小的数组里,如果大于
1|4P5356 [Ynoi2017] 由乃打扑克
题意:区间加,区间 kth。
思路:算分块维护kth的经典trick:维护每一块排好序后的数组,查询时在每一块上二分。可以做到
1|5P7963 [NOIP2021] 棋局
思路:终于来写棋局了。
其实思路不难,就对于每类边分别维护一下。
对于第一类边,可以直接维护;
对于第二类边,可以用并查集,然后维护一下段头、段尾。
对于第三类边,用线段树合并即可。
关于去重,第一类点的去重比较容易,第二类点的去重稍微有点麻烦,不过因为这一类点在横或纵坐边上是连续的,因此在线段树上是一个区间,这样也好处理。
然后就是吃子的问题。对于第一类边,比较容易。对于第二类边,会被吃的最多只有 4 个,可以直接判。对于第三类边,我们在维护线段树的同时维护一下与当前连通块相邻的棋子集合,然后查询就是一个前缀查询。
1|6P8868 [NOIP2022] 比赛
题意:给出两个序列
思路:以前以为是什么单调栈 + 线段树的神仙题,结果发现就是个用线段树暴力维护半群信息的题目。
先把询问离线下来,然后对
考虑怎么动态维护这个信息。我们发现标记其实就是区间覆盖和区间
1|7P9247 [集训队互测 2018] 完美的队列
题意:有
思路:分块好题。
首先,可以转化成对于每一次
1|8P8360 [SNOI2022] 军队
题意:有两个数组
思路:考虑分块。
对于整块,可以考虑维护森林。初始颜色相同的点有相同的父节点,然后区间赋值操作就是合并这些颜色。
合并时,如果这个颜色块内没有,就需要新建一个点代表这个颜色,然后再合并。
对于区间加,在树上打标记即可。
对于散块,可以暴力下放标记,然后暴力维护操作和重构森林。
复杂度
1|9「JOISC 2016 Day 3」回转寿司
题意:给出一个有 N 个点的环,环上各点有一个初始权值
给出 Q 个询问,每次询问给出一个区间
对于每个询问,回答遍历完区间
思路:先考虑
然后考虑拓展到一般的情况。我们此时的目的肯定是想办法尽量只关注序列的可重集,而题目的数据范围不大,时限却很大,不难想到分块。
我们将序列分块,每一块维护元素的可重集和每次会将对整个块进行操作的 A 有哪些。对于每次操作,整块可以直接把 A 加入可重集,然后把最大值弹出,这就是操作完的 A。
重点是散块如何处理。我们顺次考虑每个数,然后顺次考虑 A,如果当前的
设块长为 B,那么我们一次修改整块的复杂度是
1|10P6109 [Ynoi2009] rprmq1
题意:有一个
一次修改操作会给出
一次查询操作会给出
思路:因为是先加再询问,可以想到离线处理。那么可以想到枚举查询的左端点,然后扫描线,把加操作差分一下,那么就变成了求区间历史最值,这样做是
我们来分析一下这样做的实质。我们做的是加入
这里我们用猫树分治,因为这样只用把一个区间拆成 2 个而不是 log 个。处理区间
复杂度
__EOF__

本文链接:https://www.cnblogs.com/Xttttr/p/18015349.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】