2024年8月24日
摘要: 前置 单调队列(没学过或忘了点这里) 简化题意 有一块牛排,要求对它烹饪 \(2n\) 秒,可在给定的 \(k\) 个时间段中将它翻转任意次,使得牛排两面都受到了 \(n\) 秒的烹饪。 状态设计 可以发现当总共煮了 \(i\) 秒,其中一面如果煮了 \(j\) 秒,自然可以求出另一面为 \(i-j 阅读全文
posted @ 2024-08-24 16:12 Kx_Triumphs 阅读(11) 评论(0) 推荐(0) 编辑
  2024年8月23日
摘要: 算法总结-树链剖分 概念 重儿子(红点):父节点 \(f\) 的子节点中子树大小最大的儿子。 轻儿子(蓝点):父节点 \(f\) 的子节点中除重儿子以外的节点。 重链(橙圈框出的链):链顶为轻儿子,由重儿子组成的链。 重链剖分 用处: 将树上任意一条路径划分成不超过 \(\log{n}\) 条连续的 阅读全文
posted @ 2024-08-23 20:13 Kx_Triumphs 阅读(3) 评论(1) 推荐(1) 编辑
  2024年8月20日
摘要: 算法总结-字典树( \(Trie\) 树) 用处: 由字典序与字符构成的树,常用于处理字符串,时间复杂度一般为 \(O(|S|)\)。 普通 \(Trie\) 树: 一般以字符为边,也可以作为点处理,这里以点建树。 每一层最多只有字符集的个数个节点,同一字符在每层只会有一个节点或边。如字符串 \(a 阅读全文
posted @ 2024-08-20 16:14 Kx_Triumphs 阅读(3) 评论(0) 推荐(1) 编辑