水题练习 1
做题笔记 1
hzwer 数据结构杂题选讲(14/16)
偷了一个题表来做,当做康复训练了23333
【2018.7.3】
- CF140C 贪心、排序
- CF519B 离散化 / 排序
- CF650A 排序 (注意比较函数写法不好会导致sort死掉)
- CF466C 裸一维偏序
- CHSEQ22 差分、并查集 类似线性空间
- CF460C 二分答案、贪心
【2018.7.4】
-
单调栈处理作为最小值的范围延伸长度记为,
发现性质,对每个讨论对长度k区间的最小值和的贡献
贡献是
然后发现有区间加常数和区间加等差数列两种操作,二次差分
PS:1.注意讨论
2.iostream真是慢,要std::ios::sync_with_stdio(false)才行
-
CF459D
裸二维偏序,预处理 + 树状数组,用后缀和bit也可以
-
答案就是最大长*最大宽
变成一维问题,加入点、求当前相邻点最大差值
平衡树处理线段问题,插入、找前驱后继,可以用set
再用个map或者multiset来做删除、插入、求最大值,map竟然更快2333
set/map小笔记:内部是平衡树,用<定义的; 迭代器可以++ —, insert返回pair(迭代器,bool),multi的话返回迭代器.
-
classical的dp,表示拼出s[1,i]上一步用了哪个单词,枚举单词长度来转移,复杂度O(n*1000)
然后我的哈希一直冲突冲突冲突........于是写了trie
单词建trie,对主串每一位都跑1000长度
【2018.7.5】
-
CF339D
线段树,单点修改,查询根 2333
-
CF527D
classical 区间覆盖不重叠贪心
-
P3043 [USACO12JAN]Bovine Alliance
树的贡献是n,一个环的贡献是2,有其他的就无解
并查集维护
-
[CF718D. Andrew and Chemistry](D. Andrew and Chemistry)
树的同构 自底向上哈希,对每个点,孩子节点哈希值排序再哈希起来构成自己的哈希值
对于本题,若u、v加一个新点后同构,则u、v完全等价,u、v分别为根时哈希值相等
加上记忆化后复杂度分析:因为度数<=4,所以对于一个点不同的哈希值最多4种
因为哈希冲突留下了心里阴影,于是学了hzwer的一个技巧,直接给vector分配哈希值(也是利用了度数小)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决