<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>分类：笔记 - Maochong</title><link>https://lbr.ink/categories/xcpc_bi-ji</link><atom:link href="https://lbr.ink/categories/xcpc_bi-ji/feed/categories/xcpc_bi-ji.xml" rel="self" type="application/rss+xml"/><description>Maochong</description><generator>Halo v2.25.0</generator><language>zh-cn</language><image><url>https://lbr.ink/upload/icon-Huqp.png</url><title>分类：笔记 - Maochong</title><link>https://lbr.ink/categories/xcpc_bi-ji</link></image><lastBuildDate>Mon, 15 Jun 2026 13:09:41 GMT</lastBuildDate><item><title><![CDATA[【模板】扫描线]]></title><link>https://lbr.ink/archives/mo-ban-sao-miao-xian</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E3%80%90%E6%A8%A1%E6%9D%BF%E3%80%91%E6%89%AB%E6%8F%8F%E7%BA%BF&amp;url=/archives/mo-ban-sao-miao-xian" width="1" height="1" alt="" style="opacity:0;">扫描线 离散化后升序扫一遍扫描线 因为每次只需要查询整个区间，不需要查询小区间，所以可以 使用标记永久化，用一个变量统计该区间被覆盖的次数 全覆盖就统计整段长度，否则就从左右儿子统计 注意叶子没有左右儿子要特判一下 #include &lt;bits/stdc++.h&gt; using namespace]]></description><guid isPermaLink="false">/archives/mo-ban-sao-miao-xian</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Wed, 28 May 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[并查集]]></title><link>https://lbr.ink/archives/bing-cha-ji</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E5%B9%B6%E6%9F%A5%E9%9B%86&amp;url=/archives/bing-cha-ji" width="1" height="1" alt="" style="opacity:0;">并查集 并查集的使用是如下的场景 1）一开始每个元素都拥有自己的集合，在自己的集合里只有这个元素自己 2）find(i)：查找i所在集合的代表元素，代表元素来代表i所在的集合 4）void union(a, b)：a所在集合所有元素 与 b所在集合所有元素 合并成一个集合 5）各种操作单次调用的均摊]]></description><guid isPermaLink="false">/archives/bing-cha-ji</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Wed, 1 Jan 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[背包DP]]></title><link>https://lbr.ink/archives/bei-bao-dp</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E8%83%8C%E5%8C%85DP&amp;url=/archives/bei-bao-dp" width="1" height="1" alt="" style="opacity:0;">本质和记忆化搜索一样，效率更高 记忆化搜索-&gt;从顶到底求解问题 DP-&gt;从底到顶求解问题 写出递归 --&gt; 用数组存储中间量优化不必要的重复递归(记忆化搜索) --&gt; 严格位置依赖的DP --&gt; 用滚动数组优化空间 不适合改成DP,如和路径有关的，在一个字母网格里搜索单词，递归时同时还有走过的路径这]]></description><guid isPermaLink="false">/archives/bei-bao-dp</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Wed, 1 Jan 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[莫队]]></title><link>https://lbr.ink/archives/mo-dui</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E8%8E%AB%E9%98%9F&amp;url=/archives/mo-dui" width="1" height="1" alt="" style="opacity:0;">莫队 对于一个维护区间[L,R]，若能在O(1)复杂度内得到 [L-1,R]，[L+1,R]，[L,R-1]，[L+1]中的任意一种，就可以用使用莫队。 比如要维护一个区间内不同元素的个数。 用一个数组cnt[i]来表示区间内i出现的次数,sum,这样当cnt[i]==0时就 sum--,cnt[i]]></description><guid isPermaLink="false">/archives/mo-dui</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Wed, 1 Jan 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[洪水填充]]></title><link>https://lbr.ink/archives/hong-shui-tian-chong</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E6%B4%AA%E6%B0%B4%E5%A1%AB%E5%85%85&amp;url=/archives/hong-shui-tian-chong" width="1" height="1" alt="" style="opacity:0;">洪水填充是一种很简单的技巧，设置路径信息进行剪枝和统计，类似感染的过程 路径信息不撤销，来保证每一片的感染过程可以得到区分 看似是暴力递归过程，其实时间复杂度非常好，遍历次数和样本数量的规模一致 如果一个n*m的矩阵，使用洪水填充的时间复杂度O(n*m) 图中一个点最多被访问4次 purple_bo]]></description><guid isPermaLink="false">/archives/hong-shui-tian-chong</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[反悔贪心]]></title><link>https://lbr.ink/archives/fan-hui-tan-xin</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E5%8F%8D%E6%82%94%E8%B4%AA%E5%BF%83&amp;url=/archives/fan-hui-tan-xin" width="1" height="1" alt="" style="opacity:0;">反悔贪心 Money Buys Less Happiness Now 幸福永远买不够，所以我们又来了！在这个版本中，你每个月只能买到 $h_i = 1$ 个单位的幸福，但月数却大大增加了。我们进入了量子幸福和时间膨胀的领域。 作为一名物理学家，查理喜欢用简单精确的语言来规划自己的生活。 在接下来的]]></description><guid isPermaLink="false">/archives/fan-hui-tan-xin</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[同余]]></title><link>https://lbr.ink/archives/tong-yu</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E5%90%8C%E4%BD%99&amp;url=/archives/tong-yu" width="1" height="1" alt="" style="opacity:0;">+/- (a+b)%p = (a%p+b%p)%p $ 取模为减去能被整除后剩下的，除为连续相减，乘为连续相加 * ab%p = (n1p+a1)(n2p+b1)%p = a1b1%p = (a%p)(b%p)%p (% 优先级低于 * /) ^ (a^b)%p = ((a1*d+r)^b)%p 二]]></description><guid isPermaLink="false">/archives/tong-yu</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[线段树]]></title><link>https://lbr.ink/archives/xian-duan-shu</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E7%BA%BF%E6%AE%B5%E6%A0%91&amp;url=/archives/xian-duan-shu" width="1" height="1" alt="" style="opacity:0;">线段树 时间复杂度 建树:$O(n)$ 区间查询:$O(logn)$ 区间修改:$O(logn)$ 线段树是一种二叉树，比原数组多的节点用来存储对应原数组的某个区间的信息，通过这些节点显著降低了区间查询和修改的时间复杂度，有一些地方是“幽灵节点” ,这些节点从不使用但被编号以保证真节点能通过下标$2]]></description><guid isPermaLink="false">/archives/xian-duan-shu</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[树]]></title><link>https://lbr.ink/archives/shu</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E6%A0%91&amp;url=/archives/shu" width="1" height="1" alt="" style="opacity:0;">树 概念 根 节点 父节点 子节点 叶子节点 度 层数 深度 二叉树 一个节点的度为0，1，2 完全二叉树:最下层节点度为0，其余节点为2。 二叉树遍历 采用递归实现，调整输出语句的位置 1.前序遍历 根-左-右 2.中序遍历 左-根-右 3.后序遍历 左-右-根 两种遍历能否确定唯一二叉树]]></description><guid isPermaLink="false">/archives/shu</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[滑动窗口]]></title><link>https://lbr.ink/archives/hua-dong-chuang-kou</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3&amp;url=/archives/hua-dong-chuang-kou" width="1" height="1" alt="" style="opacity:0;">滑动窗口：维持左、右边界都不回退的一段范围，来求解很多子数组（串）的相关问题 滑动窗口的关键：找到 范围 和 答案指标 之间的 单调性关系（类似贪心） 滑动过程：滑动窗口可以用 简单变量 或者 结构 来 维护信息 求解大流程：求子数组在 每个位置 开头 或 结尾 情况下的答案（开头还是结尾在于个人习]]></description><guid isPermaLink="false">/archives/hua-dong-chuang-kou</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[(trick)map维护前缀和]]></title><link>https://lbr.ink/archives/trick-mapwei-hu-qian-zhui-he</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%28trick%29map%E7%BB%B4%E6%8A%A4%E5%89%8D%E7%BC%80%E5%92%8C&amp;url=/archives/trick-mapwei-hu-qian-zhui-he" width="1" height="1" alt="" style="opacity:0;">1.求累加和为k的最长子序列 牛客 #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;map&gt; using namespace std; int main() { int n, k; cin &gt;&gt; n &gt;&gt; k; vector&lt;]]></description><guid isPermaLink="false">/archives/trick-mapwei-hu-qian-zhui-he</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[双指针]]></title><link>https://lbr.ink/archives/shuang-zhi-zhen</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E5%8F%8C%E6%8C%87%E9%92%88&amp;url=/archives/shuang-zhi-zhen" width="1" height="1" alt="" style="opacity:0;">null]]></description><guid isPermaLink="false">/archives/shuang-zhi-zhen</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[dfs]]></title><link>https://lbr.ink/archives/dfs</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=dfs&amp;url=/archives/dfs" width="1" height="1" alt="" style="opacity:0;">null]]></description><guid isPermaLink="false">/archives/dfs</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[线性丢番图方程解的存在性证明]]></title><link>https://lbr.ink/archives/xian-xing-diu-fan-tu-fang-cheng-jie-de-cun-zai-xing-zheng-ming</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E7%BA%BF%E6%80%A7%E4%B8%A2%E7%95%AA%E5%9B%BE%E6%96%B9%E7%A8%8B%E8%A7%A3%E7%9A%84%E5%AD%98%E5%9C%A8%E6%80%A7%E8%AF%81%E6%98%8E&amp;url=/archives/xian-xing-diu-fan-tu-fang-cheng-jie-de-cun-zai-xing-zheng-ming" width="1" height="1" alt="" style="opacity:0;">线性丢番图方程解的存在性证明 线性丢番图方程（Linear Diophantine Equation）是形如 (ax + by = c) 的方程，其中 (a)、(b)、(c) 是已知整数，(x) 和 (y) 是未知整数。要讨论解的存在性，我们需要用到最大公约数（gcd）的概念。 线性丢番图方程 (a]]></description><guid isPermaLink="false">/archives/xian-xing-diu-fan-tu-fang-cheng-jie-de-cun-zai-xing-zheng-ming</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[堆]]></title><link>https://lbr.ink/archives/dui</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E5%A0%86&amp;url=/archives/dui" width="1" height="1" alt="" style="opacity:0;">堆结构 完全二叉树和数组前缀范围来对应，大小，单独的变量size来控制 i的父亲节点：i/2，i的左孩子：i*2，i的右孩子：i*2 + 1(根节点为1) 堆的定义（大根堆、小根堆） 大根堆：每一颗子树的根节点都比子节点“大”（可以是数值上的，也可以自己定义） 堆的调整：modiup（向上调整）、m]]></description><guid isPermaLink="false">/archives/dui</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[Dij]]></title><link>https://lbr.ink/archives/dij</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=Dij&amp;url=/archives/dij" width="1" height="1" alt="" style="opacity:0;">单源最短路算法--Dijktra 理解   该算法可以求单源最短路径，即一个节点到其他所有节点的最短路径。开始建立一个距离数组存放起始节点到其他所有节点的值：自身为0，其他全部为无穷大。接着遍历从起始节点开始能到达的所有节点并更新距离。然后遍历距离数组，寻找从未被选中的距离的最小值。选中该最小值，此]]></description><guid isPermaLink="false">/archives/dij</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[floyd]]></title><link>https://lbr.ink/archives/floyd</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=floyd&amp;url=/archives/floyd" width="1" height="1" alt="" style="opacity:0;">全源最短路 时间复杂度O(N^3) 空间复杂度O(N^2) 能有负边不能有负环 for(int k = 0; k &lt; n; k++) { //途径k for(int i = 0; i &lt; n; i++) { for(int j = 0; j &lt; n; j++) { if(dis[i][k]]></description><guid isPermaLink="false">/archives/floyd</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[bfs]]></title><link>https://lbr.ink/archives/bfs</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=bfs&amp;url=/archives/bfs" width="1" height="1" alt="" style="opacity:0;">null]]></description><guid isPermaLink="false">/archives/bfs</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[哈夫曼树]]></title><link>https://lbr.ink/archives/ha-fu-man-shu</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E5%93%88%E5%A4%AB%E6%9B%BC%E6%A0%91&amp;url=/archives/ha-fu-man-shu" width="1" height="1" alt="" style="opacity:0;">哈夫曼树 给定N个权值作为N个叶子结点，构造一棵二叉树，若该树的带权路径长度达到最小，称这样的二叉树为最优二叉树，也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树，权值较大的结点离根较近。 1.路径和路径长度 在一棵树中，从一个结点往下可以达到的孩子或孙子结点之间的通路，称]]></description><guid isPermaLink="false">/archives/ha-fu-man-shu</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[单调栈]]></title><link>https://lbr.ink/archives/dan-diao-zhan</link><description><![CDATA[<img src="https://lbr.ink/plugins/feed/assets/telemetry.gif?title=%E5%8D%95%E8%B0%83%E6%A0%88&amp;url=/archives/dan-diao-zhan" width="1" height="1" alt="" style="opacity:0;">可以求序列中左边/右边第一大/小的元素位置,出栈/入栈可以获得信息 Water Tank 故事 有一个长长的水箱，上面等间隔地放着不同高度的木板。高桥想知道，从水箱的一端倒水时，水到达被木板隔开的每一段的时间。 问题陈述 给你一个长度为 $N$ 的正整数序列： $H=(H _ 1,H _ 2,\do]]></description><guid isPermaLink="false">/archives/dan-diao-zhan</guid><dc:creator>lbr</dc:creator><category>笔记</category><pubDate>Mon, 1 Jan 2024 00:00:00 GMT</pubDate></item></channel></rss>