随笔分类 -  数据结构

题解 P7706 「Wdsr-2.7」文文的摄影布置
摘要:分析 这道题属于考察对于合并时不同最佳状态的讨论,我们考虑最后选出来的那三张照片位置在哪里,发现有四种情况(中间隔开处为线段树区间的 \(mid\))。 1、\(ijk\)|。 2、|\(ijk\)。 3、\(ij\)|\(k\)。 4、\(i\)|\(jk\)。 显然前两种情况就是子节点的答案,而 阅读全文
posted @ 2021-12-16 15:26 漠寒· 阅读(81) 评论(0) 推荐(1)
题解 P4113【HEOi2012】采花
摘要:分析 考虑对每一种花,它在区间内能做贡献当且仅当区间内有两朵以上该种类的花,所以我们对每一个右端点,使它左侧每一种花的倒数第二个位置做贡献,这样能保证贡献被统计正确,避免选漏,然后就转化为前缀问题,用树状数组 \(logn\) 即可解决,然后将询问按右端点排序,每次右移时将它前面同类型的贡献加一,前 阅读全文
posted @ 2021-10-31 11:43 漠寒· 阅读(29) 评论(0) 推荐(0)
题解 P2572序列操作
摘要:分析 对连续值和求和的询问都是比较板的,这里讲修改,赋值和翻转分别设置一个标记,思考它们的优先级,显然赋值高于翻转,所以在赋值时应清空翻转标记,在翻转时优先考虑能不能直接将赋值标记异或一,否则在改变自身即可。 Code #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2021-10-31 11:29 漠寒· 阅读(78) 评论(0) 推荐(0)
题解 P1783 海滩防御
摘要:分析 首先看题目发现这是一个连通性问题,就是在某个半径下一些塔的控制范围有重叠部分,两塔有重叠就说明它们连成了一片,同理若某塔控制了海滩边缘,这一侧边缘也与它相连,海滩受保护当且仅当左右摊联通,显然这是一个满足二分的东西,半径越大可连的边单调不降,但我们并不需要二分,只需要一次找出所有边,然后按边权 阅读全文
posted @ 2021-10-31 09:32 漠寒· 阅读(54) 评论(0) 推荐(0)
题解 SP1741 TETRIS3D - Tetris 3D
摘要:分析 第一次写二维线段树,四叉树的写法。改了将近两个小时,结果最后发现把 long long 去掉时间复杂度就行了,哭掉。 这是图解。摘自一篇博客。 也就是每一个线段树的子节点,代表一个矩形,它的四个儿子,分别代表它的左上,左下,右上,右下。 其它方面就和普通的线段树无异了,唯一的变化就是你的处理由 阅读全文
posted @ 2021-09-10 07:49 漠寒· 阅读(38) 评论(0) 推荐(0)
题解 CF1401F Reverse and Swap
摘要:分析 首先,数组大小为 \(2^n\),所以可以确保2和3操作都能覆盖到整个数组,而且我们可以将整个数组分为 \(n+1\) 层。 在分层之后,我们该怎么处理2操作和3操作呢?首先理解3操作,将题面简化就是将每个大小为 \(2^{k+1}\) 里面的左右两块整体交换,在此基础上,我们就可以进一步理解 阅读全文
posted @ 2021-08-28 21:13 漠寒· 阅读(66) 评论(0) 推荐(0)
自动机(估计要写几天)
摘要:#前言 最近新学了后缀自动机,回文自动机,感觉以前学的还是掌握的不深,于是总结一下字符串中的几个数据结构,进行一个复习,可能要写几天,待完成(对现在而言)。 ##AC自动机 ###Trie树 对于字符串来讲,这应该是最基础的数据结构。 \(Trie\) 树的每一条边代表一个字符,每个节点代表一个字符 阅读全文
posted @ 2021-08-27 21:20 漠寒· 阅读(146) 评论(0) 推荐(0)