<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[YLCHUP的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/YLCHUP</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; YLCHUP]]></copyright><item><title><![CDATA[【组合数插板法+容斥计数+边界判断】题解：水果销售商（fruit）排列组合_计数_组合数学_border特判_C++算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/170743519</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/170743519</guid><author>YLCHUP</author><pubDate>Fri, 13 Nov 2026 21:28:07 +0800</pubDate><description><![CDATA[小实希望按销售业绩分配水果，金牌销售商每人至少 $k+1$ 个，普通销售商每人至多 $k-1$ 个。给定批次数 $n$、标准值 $k$ 及每批的金牌/普通销售商数量与总水果数 $m$，求满足条件的分配方案数（模 $10^5$）。通过组合数学与容斥原理计算：对金牌销售商用插板法求解下界分配；对普通销售商用容斥处理上界限制。若无法满足最小/最大需求则输出 empty，否则统计所有合法分配方案总数。]]></description><category></category></item><item><title><![CDATA[【最短路性质+计数hash】题解：矿井寻踪（trace）_图论_动态规划_拓扑排序_哈希优化_C++算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/170743460</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/170743460</guid><author>YLCHUP</author><pubDate>Fri, 13 Nov 2026 21:25:03 +0800</pubDate><description><![CDATA[本题要求在动态变化的有向带权图中，判断每天隧道反向后从起点 $S=1$ 到终点 $T=2$ 的最短时间是否变化。通过两次 Dijkstra 预处理正反向最短距离及最短路方案数（双模数哈希避免溢出），对每条边判断其是否为原最短路必经边。若反向后新路径更优则输出 HAPPY，更劣且为关键边则输出 SAD，否则为 SOSO。]]></description><category></category></item><item><title><![CDATA[【思维&图论建模】题解：债权（debt）_图论_建模_思路转化_思维题目_C++算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/170743400</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/170743400</guid><author>YLCHUP</author><pubDate>Fri, 13 Nov 2026 21:19:45 +0800</pubDate><description><![CDATA[本题通过图论建模，将债务关系转化为有向边。关键观察是：债权转让不改变每个人的净债务额（即出账减入账）。计算每个人净欠款 $ d[i] = \text{out}[i] - \text{in}[i] $，最小还款总额为所有正净债务之和，等于 $ \frac{1}{2} \sum |d[i]| $。最终成本为总还款额的 $ 0.1 $ 倍。代码通过统计出入账差值求解，时间复杂度 $ O(n+m) $，适用于大规模数据。]]></description><category></category></item><item><title><![CDATA[【树上排序交换贪心】题解：P3574[POI2014]FAR-FarmCraft+遍历 (traverse)_exchangearguments_树上游走_欧拉图_排序不等式_算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/170564554</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/170564554</guid><author>YLCHUP</author><pubDate>Wed, 11 Nov 2026 22:31:53 +0800</pubDate><description><![CDATA[给定一棵以1为根的树，每个节点有处理耗时 $a_i$。要求从根出发遍历整棵树并返回，每条边最多经过两次，目标是最小化所有节点完成时间的最大值。通过贪心策略对子树排序：按 $f[v] + 2 \cdot sz[u]$ 从小到大排列，其中 $f[u]$ 表示子树 $u$ 的最小相对完成时间，$sz[u]$ 为子树大小。使用 DFS 动态规划计算，最终答案为 $f[1] = \max(f[1], 2(n-1) + a_1)$。时间复杂度 $O(n \log n)$。]]></description><category></category></item><item><title><![CDATA[【容斥原理计数】题解：P9489 ZHY的表示法_容斥原理_计数问题_前缀和问题转化_算法竞赛C++]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/170564495</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/170564495</guid><author>YLCHUP</author><pubDate>Wed, 11 Nov 2026 22:30:24 +0800</pubDate><description><![CDATA[给定 $ n $ 个正整数，求区间 $[l,r]$ 中有多少正整数 $ x $ 可表示为 $ \sum \lfloor \frac{y}{x_i} \rfloor $。通过二分确定最大 $ y $，转化为求 $ 1 \sim H $ 中是某些 $ x_i $ 倍数的数的个数，利用容斥原理与 DFS 枚举子集计算，结合 LCM 预判剪枝及去重优化，时间复杂度 $ O(2^n \log V) $，可高效处理 $ r \le 10^9 $ 的数据。]]></description><category></category></item><item><title><![CDATA[【前缀和+复合离散化】题解：双色矩形(two)_数据结构_算法优化_预处理_二维前缀和_STL_C++算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/170564428</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/170564428</guid><author>YLCHUP</author><pubDate>Wed, 11 Nov 2026 22:29:02 +0800</pubDate><description><![CDATA[给定一个 $n \times n$ 的黑白棋盘，初始按 $i+j$ 奇偶染色，经 $k$ 个格子颜色翻转后，求子矩形中黑白格子数差的绝对值最大值。由于 $n$ 可达 $10^9$，但 $k \leq 50$，可离散化关键点。枚举所有由修改点构成的矩形及其四边向外扩展（共 $16$ 种扩展方式），利用二维前缀和快速计算变化量，结合奇偶性判断多出的格子颜色，最终取最大绝对差。时间复杂度为 $O(k^4)$，在 $k \leq 50$ 下可行。]]></description><category></category></item><item><title><![CDATA[【算法竞赛技巧】set处理子树颜色问题]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/169652918</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/169652918</guid><author>YLCHUP</author><pubDate>Sat, 31 Oct 2026 22:14:46 +0800</pubDate><description><![CDATA[本文系统讲解了在树上问题中利用 set 维护子树颜色的经典技巧。核心思想是通过 DFS 序将子树转化为连续区间，结合 set 的有序性实现高效操作：支持颜色种类统计、区间查询、存在性判断及同色点虚树距离维护。常用方法包括每色建 set 二分查询、DSU on Tree 动态合并、启发式合并子树集合等，适用于不同场景，复杂度从 $O(\log n)$ 到 $O(n \log^2 n)$ 不等。关键在于灵活运用 DFS 序与 set 的前驱后继、区间查找能力，是解决树上颜色相关问题的重要工具。]]></description><category></category></item><item><title><![CDATA[【超级钢琴trick】题解：锦里客流(volume)_super piano‘s trick_贪心_状态转移_堆 优先队列_C++算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/169652752</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/169652752</guid><author>YLCHUP</author><pubDate>Sat, 31 Oct 2026 21:55:34 +0800</pubDate><description><![CDATA[本题要求求出长度为 $ n $ 的非负整数序列中，所有非空连续子区间和的前 $ k $ 大值。通过前缀和将问题转化为求 $ s[r] - s[l] $（$ 0 \leq l < r \leq n $）的前 $ k $ 大值。使用大根堆维护每个右端点 $ r $ 对应的当前最大区间和，并在取出后扩展左端点，避免重复。利用哈希表去重，确保每种区间仅计一次。时间复杂度为 $ O(k \log n) $，适用于 $ k \leq 10^5 $。]]></description><category></category></item><item><title><![CDATA[【GCD性质+放缩】题解：公因数（gcd）_最大公约数_数论_数学放缩_性质观察_C++算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/169652692</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/169652692</guid><author>YLCHUP</author><pubDate>Sat, 31 Oct 2026 21:51:05 +0800</pubDate><description><![CDATA[给定正整数 $ n $，求区间 $[1, n]$ 中满足 $ \gcd(a,b) = a \oplus b $ 的无序对数量。通过数学推导可知，当且仅当 $ \gcd(a,b) = a - b = a \oplus b = c $ 时成立。枚举 $ c $ 及其倍数 $ a = c(i+1), b = ci $，验证 $ a - b = a \oplus b $，可将复杂度优化至 $ O(n \log n) $，高效求解。]]></description><category></category></item><item><title><![CDATA[【括号匹配+dp计数】题解：括号序列（bracket）_括号序列_栈_数据结构_动态规划_计数_C++算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/154091535</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/154091535</guid><author>YLCHUP</author><pubDate>Wed, 28 Oct 2026 20:42:05 +0800</pubDate><description><![CDATA[给定括号字符串，求每个位置 $i$ 被多少个合法括号子串包含，并输出 $\sum (i \cdot \text{ans}_i) \mod (10^9 + 7)$。通过栈匹配括号，定义 $f[i]$（以 $i$ 结尾的合法串数）、$g[i]$（从 $i$ 开始的合法串数），利用匹配位置计算包含 $i$ 的方案数：$\text{ans}[i] = g[i] \times f[\text{match}[i]]$，并累加栈中上层贡献。最后按位置加权求和，注意仅内层取模，避免组合数学解法。时间复杂度 $O(n)$，适]]></description><category></category></item><item><title><![CDATA[【贪心交换排序】题解：P11376 [GESP202412 六级] 运送物资_贪心模型_排序_模拟_C++算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/156135768</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/156135768</guid><author>YLCHUP</author><pubDate>Wed, 28 Oct 2026 20:39:13 +0800</pubDate><description><![CDATA[摘要：题目要求优化分配货车到运输站点，使得所有货车每天的总行驶路程最短。关键在于将货车分为两类：优先分配到左侧站点的（a_i ≥ b_i）和优先分配到右侧站点的（a_i < b_i）。通过贪心策略，分别对两类货车和站点排序，确保高差值车辆优先分配到更优位置。最终计算总路程时，依次处理两类货车，利用剩余站点容量完成分配。算法复杂度为O(n log n)，适用于大规模数据。]]></description><category></category></item><item><title><![CDATA[【模拟&STL】题解：AT_abc203_e [ABC203E] White Pawn_基础算法_数据结构_STL模板库_AtcoderABC_C++算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/163025368</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/163025368</guid><author>YLCHUP</author><pubDate>Wed, 28 Oct 2026 20:33:28 +0800</pubDate><description><![CDATA[题目摘要：在一个$(2N+1)\times(2N+1)$的棋盘上，初始放置一个白兵在$(0,N)$和$M$个固定黑兵。白兵移动规则为：可向下移动至空位，或借助斜向黑兵移动。求白兵最终能到达第$2N$行的不同列数。 解法思路：利用动态维护集合的方法，按行处理黑兵位置。通过set维护当前可到达的列集合，遇到黑兵时调整集合：移除正下方受阻的列，添加可通过斜向移动到达的列。时间复杂度为$O(M\log M)$。 示例代码使用map和set实现，处理每行黑兵后更新可到达列集合，最终输出集合大小。]]></description><category></category></item><item><title><![CDATA[【dp套dp+进阶限制背包】题解：bag_树形依赖背包_动态规划dp_算法竞赛_C++]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/166692448</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/166692448</guid><author>YLCHUP</author><pubDate>Sat, 26 Sep 2026 21:21:26 +0800</pubDate><description><![CDATA[本题通过将物品进出时间区间转化为嵌套树形结构，利用栈的LIFO特性建模。关键观察：区间关系为不交或包含，形成森林；添加虚拟根节点后转为树形依赖背包问题。按out升序、in降序排序后，用动态规划f[i][j]表示以物品i为根、总重不超过j时的最大价值。借助辅助数组g[t]维护时间轴上已结束区间的最优收益，实现区间不交状态转移。复杂度$O(n^2S)$，最终答案为f[n+1][S]。]]></description><category></category></item><item><title><![CDATA[【洛谷福利】AI修正题解格式、看哪些能交题解：洛谷档案馆]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/163895289</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/163895289</guid><author>YLCHUP</author><pubDate>Wed, 19 Aug 2026 21:05:40 +0800</pubDate><description><![CDATA[该链接指向洛谷在线评测系统的题目解答页面，包含两张截图。首图展示了某编程题目的解决方案代码界面，次图呈现了相关算法的流程图或示例图解。摘要建议：这是一个算法题解页面，可能包含具体实现代码和解题思路的可视化展示，适用于需要参考标准解法的编程学习者。由于无法访问原页面，建议直接查看链接获取完整解答内容。（99字）]]></description><category></category></item><item><title><![CDATA[【性质计数+LCA】题解：P17276 『__OI R1』Rotating Mole_计数_最近公共祖先LCA_树上计数_性质挖掘_C++算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/163895027</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/163895027</guid><author>YLCHUP</author><pubDate>Wed, 19 Aug 2026 20:47:22 +0800</pubDate><description><![CDATA[本文研究了给定有根树的构造图全源最短路之和问题。构造图是完全图，边权为两节点的LCA编号。研究发现最短路长度只可能是1或2，其中当LCA为根时最短路为1，否则为2。通过统计子树大小，将问题转化为计算满足条件的点对数量，最终推导出答案为(n-1)^2 + ∑s_i^2，其中s_i是以根的直接子节点为根的子树大小。文中提供了暴力、链式、菊花图和线性复杂度四种解法，最优解时间复杂度为O(n)。]]></description><category></category></item><item><title><![CDATA[【序列类组合计数】题解：P17224 [Math×Girl²] 搬家_组合数问题_阶乘逆元预处理_数学问题_C++算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/163704614</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/163704614</guid><author>YLCHUP</author><pubDate>Wed, 12 Aug 2026 20:09:12 +0800</pubDate><description><![CDATA[本文分析了题目P17224关于物品装箱的最优策略问题。题目要求找出所有物品大小分配方案，使得打包机的装箱结果与最优策略一致。关键在于利用贪心算法和组合数学计算方案数。主要结论包括： 最优策略是按编号顺序能装就装，打包机方案与之等价的条件分析。 根据体积x和容量M的关系分类讨论，推导出不同情况下的组合数公式。 特别注意当M-x为偶数时的特殊情况处理。 使用预处理阶乘和逆元来高效计算组合数。 最终答案为所有可能x值对应方案数的和，模998244353。 时间复杂度为O(N)，适用于N,M≤1e7的规模。]]></description><category></category></item><item><title><![CDATA[【思维】题解：P17177CheckCheckPermutationClear_单调栈_逆序对_算法竞赛C++_【LGR-293-Div.2】洛谷 8 月月赛 I & CJLOI Round 2]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/163510930</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/163510930</guid><author>YLCHUP</author><pubDate>Wed, 05 Aug 2026 19:53:44 +0800</pubDate><description><![CDATA[本文摘要：题目要求判断排列是否满足单调栈弹栈次数等于逆序对数。通过分析发现，当且仅当不存在任何数后有两个以上更小数时成立。两种解法：1）从后往前维护最小值判断；2）利用栈中已弹出元素的最大值判断后续元素。最终通过快速读入和处理，验证条件并计算答案。代码实现简洁高效，适用于大规模数据输入。]]></description><category></category></item><item><title><![CDATA[【算法竞赛专题】第1讲(1)前缀和与差分习题_CSP-S提高级_基础算法_理论_思维_代码_C++]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/163000758</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/163000758</guid><author>YLCHUP</author><pubDate>Sun, 19 Jul 2026 21:28:47 +0800</pubDate><description><![CDATA[本文介绍了三个算法题目及其解法： IncDec Sequence：通过差分数组将区间加减操作转化为单点修改，最少操作次数为差分数组中正数和负数的绝对值的较大者，最终结果数为两者差的绝对值加1。 子数组异或和：按位拆分计算贡献，统计每个二进制位上前缀异或和中0和1的个数，答案即为各位上01组合数乘以对应权值之和。 幽默的世界：利用前缀和与二分查找处理特殊子序列问题，通过差分和前缀和数组快速统计区间内的幽默序列数量，对于边界情况需单独处理。 这些题目综合运用了差分、前缀和、二分查找和双指针等技巧，展示了如何将复]]></description><category></category></item><item><title><![CDATA[【二分图+栈排序】题解：P1155 [NOIP2008 提高组] 双栈排序_二分图染色_贪心_模拟_C++算法竞赛]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/150879697</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/150879697</guid><author>YLCHUP</author><pubDate>Wed, 27 Aug 2025 12:07:49 +0800</pubDate><description><![CDATA[本文研究了双栈排序问题，通过二分图染色和贪心策略给出了解决方案。首先分析单栈排序的限制条件，引入后缀最小值优化冲突检测。然后将问题转化为二分图染色问题，确保冲突元素进入不同栈。在模拟过程中，采用贪心策略保证字典序最小的操作序列。算法主要包括预处理、二分图判定、栈模拟三个阶段，时间复杂度为O(n²)。对于无法排序的情况输出0，否则输出字典序最小的操作序列。]]></description><category></category></item><item><title><![CDATA[【数学分块】题解：P13831 【MX-X18-T3】「FAOI-R6」比亚多西_二分查找_整除分块_数学推导_算法竞赛C++]]></title><link>https://blog.youkuaiyun.com/YLCHUP/article/details/150922619</link><guid>https://blog.youkuaiyun.com/YLCHUP/article/details/150922619</guid><author>YLCHUP</author><pubDate>Wed, 27 Aug 2025 12:04:56 +0800</pubDate><description><![CDATA[本文探讨了二分查找次数函数f(n)的递推关系及其区间和计算。作者通过构建二叉搜索树模型，证明f(n)=f(n-1)+⌊log₂n⌋+1。基于该性质，将区间和转化为前缀和差s(R)-s(L-1)，并利用对数分块和等差数列求和优化计算。给出C++实现，使用int128处理大数取模，时间复杂度为O(log R)。代码通过预处理2的幂次和模运算优化，最终高效求解给定区间[L,R]内f(i)的和。]]></description><category></category></item></channel></rss>