<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>贪心 on 分而治之</title>
        <link>https://www.pythoner.work/tags/%E8%B4%AA%E5%BF%83/</link>
        <description>Recent content in 贪心 on 分而治之</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <copyright>Divide and Conquer. All rights reserved.</copyright>
        <lastBuildDate>Mon, 25 Aug 2025 21:51:00 +0800</lastBuildDate><atom:link href="https://www.pythoner.work/tags/%E8%B4%AA%E5%BF%83/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>CF-2133 (Codeforces Round 1044, Div. 2) 题解</title>
        <link>https://www.pythoner.work/post/cf-2133/</link>
        <pubDate>Mon, 25 Aug 2025 21:51:00 +0800</pubDate>
        
        <guid>https://www.pythoner.work/post/cf-2133/</guid>
        <description>&lt;h2 id=&#34;2133a-redstone&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2133/problem/A&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;2133A. Redstone?&lt;/a&gt;
&lt;/h2&gt;&lt;h3 id=&#34;题意&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;有 $n$ 个齿轮，第 $i$ 个齿轮有 $a_i$ 个齿。&lt;/p&gt;
&lt;p&gt;现在将齿轮排成一横排，以每秒 $1$ 圈的速度转动最左侧的齿轮；对于其他齿轮，设该齿轮有 $a_i$ 个齿，它左侧的齿轮有 $a_{i - 1}$ 个齿，左侧齿轮转速为 $rev_{i - 1}$，则该齿轮的转速为 $\frac{a_{i - 1}}{a_i} \cdot rev_{i - 1}$ 圈每秒。&lt;/p&gt;
&lt;p&gt;请问存不存在一种排列方式使得最右侧的齿轮每秒转 $1$ 圈？&lt;/p&gt;
&lt;h3 id=&#34;题解&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;设第 $i$ 个齿轮的齿的线速度为 $v_i$，则 $v_i = a_i \cdot rev_i$。&lt;/p&gt;
&lt;p&gt;根据题中齿轮转速公式，可得：$v_{i + 1} = a_{i + 1} \cdot \frac{a_i}{a_{i + 1}} \cdot rev_i = a_i \cdot rev_i = v_i (i &amp;lt; n)$，即 $v_1 = v_2 = v_3 = \dots = v_n$。&lt;/p&gt;
&lt;p&gt;什么时候有 $rev_1 = 1 = rev_n$ 呢？容易证明，当且仅当 $a_1 = a_n$ 时两齿轮转速相等。&lt;/p&gt;
&lt;p&gt;那么排列方式就是把任意一对齿数相等的齿轮放在两端，剩余的齿轮在中间任意放置。若没有齿数相等的齿轮，则没有排列方式。&lt;/p&gt;
&lt;p&gt;答案显而易见，判断是否有齿数相等的齿轮。&lt;/p&gt;
&lt;h3 id=&#34;参考代码&#34;&gt;参考代码
&lt;/h3&gt;&lt;h4 id=&#34;on2-做法&#34;&gt;O(n^2) 做法
&lt;/h4&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2133/submission/335515090&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #335515090&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&#34;on-log-n-做法&#34;&gt;O(n log n) 做法
&lt;/h4&gt;&lt;p&gt;&lt;em&gt;在 C++ 中，&lt;code&gt;unique()&lt;/code&gt; 函数会返回一个迭代器，指向去重后的数组末尾，我们通过这个迭代器可以计算出新数组的长度，进一步我们可以判断数组长度是否有减少，若有减少，则说明有齿数相等的齿轮。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2133/submission/335402522&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #335402522&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&#34;on-做法-1&#34;&gt;O(n) 做法 1
&lt;/h4&gt;&lt;p&gt;&lt;em&gt;由于数据范围足够小，所以完全不会产生哈希碰撞，&lt;code&gt;set&lt;/code&gt; 的单次操作复杂度为 $O(1)$。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2133/submission/335440738&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #335440738&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&#34;on-做法-2&#34;&gt;O(n) 做法 2
&lt;/h4&gt;&lt;p&gt;&lt;em&gt;由于数据范围足够小，所以我们可以记录每个齿数出现的次数。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2133/submission/335516343&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #335516343&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2133b-villagers&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2133/problem/B&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;2133B. Villagers&lt;/a&gt;
&lt;/h2&gt;&lt;h3 id=&#34;题意-1&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;无向图 $G$ 中有 $n$ 个点，每个点有点权 $g_i$，初始状态下图中没有边。&lt;/p&gt;
&lt;p&gt;可以进行以下操作任意次：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选取两个点 $i$ 和 $j$；&lt;/li&gt;
&lt;li&gt;支付操作成本 $max(g_i, g_j)$；&lt;/li&gt;
&lt;li&gt;使两个点的点权降低 $min(g_i, g_j)$；&lt;/li&gt;
&lt;li&gt;添加一条边连接 $i$ 和 $j$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;输出使 $G$ 成为&lt;a class=&#34;link&#34; href=&#34;https://oi-wiki.org/graph/concept/#%e6%97%a0%e5%90%91%e5%9b%be&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;连通图&lt;/a&gt;所需的最小成本。&lt;/p&gt;
&lt;h3 id=&#34;题解-1&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;发现每次操作后，两个点中点权较小的点的点权会变为 $0$，而连接两个点权为 $0$ 的节点是没有成本的。因此，我们只需要记录所有的点都经过一次操作所需成本，而后续合并是无成本的。&lt;/p&gt;
&lt;p&gt;排序 $g$ 数组，可以证明一种最优方案为连接 $n$ 与 $n - 1$、$n - 2$ 与 $n - 3$……&lt;/p&gt;
&lt;p&gt;证明：考虑在 $n \geq 4$ 情况下连接 $n$ 与 $x$、$n - 1$ 与 $y$（$x, y \in [1, n - 2]$）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;这两组连接的操作成本为 $g_n + g_{n - 1}$；&lt;/li&gt;
&lt;li&gt;如果换为连接 $n$ 与 $n - 1$、$x$ 与 $y$，操作成本为 $g_n + max(g_x, g_y)$；&lt;/li&gt;
&lt;li&gt;由于 $max(g_x, g_y) \leq g_{n - 1}$，后者的操作成本小于前者，应当使用后者的连接方式；&lt;/li&gt;
&lt;li&gt;问题可以无后效性地转移到 $n - 2$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;特别地：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$n = 3$ 时，连接 $2$ 与 $3$、$1$ 与 $2$，操作成本为 $g_1 + g_3$，为最小值。&lt;/li&gt;
&lt;li&gt;$n = 2$ 时，连接 $1$ 与 $2$，操作成本为 $g_2$，为最小值。&lt;/li&gt;
&lt;li&gt;转移不到 $n = 1$ 的情况。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最优方案的总成本为 $g_n + g_{n - 2} + g_{n - 4} + \dots$。&lt;/p&gt;
&lt;h3 id=&#34;参考代码-1&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2133/submission/335433243&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #335433243&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2133c-the-nether&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2133/problem/C&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;2133C. The Nether&lt;/a&gt;
&lt;/h2&gt;&lt;h3 id=&#34;题意-2&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;交互题。&lt;/p&gt;
&lt;p&gt;一个未知的有向图有 $n$ 个点，请在至多 $2 \cdot n$ 次查询中，找出图中最长路径。&lt;/p&gt;
&lt;p&gt;每次操作时，你需要输出一个点 $x$ 与一个包含任意多点的集合 $S$，满足 $x \in S$，评测机将返回从 $x$ 出发只经过 $S$ 中的点的路径的最大长度。&lt;/p&gt;
&lt;h3 id=&#34;题解-2&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;首先，我们需要找出最长路径的起点，可以通过遍历所有点，查询从该点 $i$ 出发的最长路径长度（记作 $f_i$），记 $f_i$ 最大的 $i$ 为 $ans_1$，最大的 $f_i$ 记作 $len$。&lt;/p&gt;
&lt;p&gt;接着，我们要找出最长路径中第 $2$ 个点，这个点显然必须满足 $f_i = len - 1$，而且 $ans_1$ 到 $i$ 必须有连边。所以我们需要遍历所有满足条件的点，并查询从 $ans_1$ 出发只经过 $i$ 的最长路径长度，若是 $2$，则表明 $ans_1$ 到 $i$ 有连边，可以选作 $ans_2$。&lt;/p&gt;
&lt;p&gt;循环地找出最长路径中其他的点，最后输出 $ans$ 即可。&lt;/p&gt;
&lt;p&gt;因为每个节点至多满足一次 $f_i = len - i + 1$，所以第二部分至多执行 $n - 1$ 次查询。总共至多执行 $2n - 1$ 次查询，满足题目要求。&lt;/p&gt;
&lt;h3 id=&#34;参考代码-2&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2133/submission/335435769&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #335435769&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2133d-chicken-jockey&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2133/problem/D&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;2133D. Chicken Jockey&lt;/a&gt;
&lt;/h2&gt;&lt;h3 id=&#34;题意-3&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;有 $n$ 个怪物，这些怪物上下叠在一起，其中怪物 $1$ 在最底部，怪物 $n$ 在最顶部，每个怪物有 $h_i$ 的初始生命值。&lt;/p&gt;
&lt;p&gt;Steve 可以攻击任意怪物造成 $1$ 点伤害。如果一个怪物的剩余生命值小于等于 $0$，它将会死亡，然后它上方的所有怪物将会摔落成为新的一叠，新的一叠中的最底部的怪物会受到&lt;em&gt;摔落伤害&lt;/em&gt;，摔落伤害是可以致命的，因此可能触发连锁反应。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;摔落伤害&lt;/em&gt;：等同于其在摔落前压着的怪物数（被击杀的那个也算）。&lt;/p&gt;
&lt;p&gt;请问最少需要多少次攻击，使得所有怪物都死亡？&lt;/p&gt;
&lt;h3 id=&#34;题解-3&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;发现：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一个怪物至多受到一次摔落伤害，因为受到摔落伤害说明它是一叠的最底部，不可能再摔落了；&lt;/li&gt;
&lt;li&gt;怪物 $i$ 有两种方式死亡：直接击杀或者摔落受到 $i - 1$ 点伤害。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使用 DP 解决：&lt;code&gt;f[i]&lt;/code&gt; 表示击杀前 $i$ 个怪物需要多少次攻击。&lt;/p&gt;
&lt;p&gt;根据发现的规律，可以得到状态转移方程：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;让前 $i - 1$ 个怪物全部死亡，然后受到 $1$ 点摔落伤害，最后攻击 $h_i - 1$ 次击杀，&lt;code&gt;f[i] = f[i - 1] + h[i] - 1&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;击杀第 $i - 1$ 个怪物，然后受到 $i - 1$ 点摔落伤害，并攻击直至击杀，最后让前 $i - 2$ 个怪物死亡，&lt;code&gt;f[i] = f[i - 2] + h[i - 1] + max(0, h[i] - (i - 1))&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;参考代码-3&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2133/submission/335402193&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #335402193&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>CF-2132 (Codeforces Round 1043, Div. 3) 题解</title>
        <link>https://www.pythoner.work/post/cf-2132/</link>
        <pubDate>Sun, 24 Aug 2025 13:34:00 +0800</pubDate>
        
        <guid>https://www.pythoner.work/post/cf-2132/</guid>
        <description>&lt;h2 id=&#34;2132a-homework&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2132/problem/A&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;2132A. Homework&lt;/a&gt;
&lt;/h2&gt;&lt;h3 id=&#34;题意&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;有 Vlad 和 Dima 两个人，他们需要依次将字符串 $b$ 中的每个字母放到字符串 $a$ 的头或尾。其中 Vlad 会将字母放到 $a$ 的开头，Dima 会将字母放到 $a$ 的末尾。&lt;/p&gt;
&lt;p&gt;已知三个字符串，$a, b, c$，其中 $c$ 代表两人操作顺序。若 $c_i$ 为 &lt;code&gt;V&lt;/code&gt;，则第 $i$ 个字母由 Vlad 放置；若 $c_i$ 为 &lt;code&gt;D&lt;/code&gt;，则由 Dima 放置。&lt;/p&gt;
&lt;p&gt;输出 $a$ 的最终状态。&lt;/p&gt;
&lt;h3 id=&#34;题解&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;模拟即可。&lt;/p&gt;
&lt;p&gt;考虑简单的实现方式，由于添加到开头（左侧）不太方便，所以我们将添加到左侧的字符保存到另一字符串中，在所有操作结束后逆序输出。&lt;/p&gt;
&lt;h3 id=&#34;参考代码&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2132/submission/334976874&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #334976874&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2132b-the-secret-number&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2132/problem/B&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;2132B. The Secret Number&lt;/a&gt;
&lt;/h2&gt;&lt;h3 id=&#34;题意-1&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;对于数字 $x$，可以进行一次操作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在 $x$ 的末尾添加至少 $1$ 个数字 $0$，赋值给 $y$。&lt;/li&gt;
&lt;li&gt;操作后的数 $n = x + y$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;给定 $n$，求所有可能的 $x$，从小至大排序输出。&lt;/p&gt;
&lt;h3 id=&#34;题解-1&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;发现&lt;/p&gt;
&lt;p&gt;$$y = x \cdot 10^k$$&lt;/p&gt;
&lt;p&gt;其中 $k$ 是添加的 $0$ 的个数，满足 $k \in \mathbb{N}^+$。&lt;/p&gt;
&lt;p&gt;因此：&lt;/p&gt;
&lt;p&gt;$$n = x + x \cdot 10^k = x \cdot (10^k + 1)$$&lt;/p&gt;
&lt;p&gt;即对于给定的 $n$，所有可能的 $x$ 的值为：&lt;/p&gt;
&lt;p&gt;$$\frac{n}{10^k + 1} 当 k \in \mathbb{N}^+ 且 (10^k + 1) | n$$&lt;/p&gt;
&lt;h3 id=&#34;参考代码-1&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2132/submission/334979970&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #334979970&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tricks: 从大到小枚举 $k$，结果的 $x$ 必定是从小到大的，省一步排序。&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;2132c1-the-cunning-seller-easy-version&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2132/problem/C1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;2132C1. The Cunning Seller (easy version)&lt;/a&gt;
&lt;/h2&gt;&lt;h3 id=&#34;题意-2&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;西瓜卖家在他的每次交易中只能卖掉 $3^x$ 个西瓜，价格为 $3^{x + 1} + x \cdot 3^{x - 1}$，其中 $x$ 为非负整数。&lt;/p&gt;
&lt;p&gt;买家希望通过最少的交易次数买到 $n$ 个西瓜（不能多也不能少），输出在此情况下西瓜的总价。&lt;/p&gt;
&lt;h3 id=&#34;题解-2&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;容易发现，卖掉 $3^x$ 个西瓜，相当于在三进制下使 $n$ 的从右至左第 $x + 1$ 位减少 $1$。&lt;/p&gt;
&lt;p&gt;那么，为了获得最小的次数，对于三进制下从右至左第 $x + 1$ 位，它的值为 $y$ 时，我们需要进行 $y$ 次卖掉 $3^x$ 个西瓜的操作。&lt;/p&gt;
&lt;p&gt;代入原式，加和即可。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;预处理 $3^x$ 的值即可，没必要推价格的递推公式。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;参考代码-2&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2132/submission/335129815&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #335129815&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2132c2-the-cunning-seller-hard-version&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2132/problem/C2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;2132C2. The Cunning Seller (hard version)&lt;/a&gt;
&lt;/h2&gt;&lt;h3 id=&#34;题意-3&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;西瓜卖家在他的每次交易中只能卖掉 $3^x$ 个西瓜，价格为 $3^{x + 1} + x \cdot 3^{x - 1}$，其中 $x$ 为非负整数。&lt;/p&gt;
&lt;p&gt;买家希望通过不多于 $k$ 次交易，以最小的价格购买 $n$ 个西瓜，输出此时的总价，若不能满足题目要求则输出 $-1$。&lt;/p&gt;
&lt;h3 id=&#34;题解-3&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;首先把 C1 的代码抄过来，并记录交易次数、每次交易的（西瓜数的）指数。&lt;/p&gt;
&lt;p&gt;发现 $3 \times 3^{x-1}$ 的交易总是比 $3^x$ 的交易要便宜。设当西瓜数为 $x$ 时的西瓜价格为 $f(x)$，列式计算替换 $3^x$ 的交易为 $3 \times 3^{x-1}$ 的交易所降低的总价：&lt;/p&gt;
&lt;p&gt;$$f(3^x) - 3 \cdot f(3^{x-1}) = 3^{x + 1} + x \cdot 3^{x - 1} - 3 \cdot 3^x - 3 \cdot (x - 1) \cdot 3^{x - 2}$$&lt;/p&gt;
&lt;p&gt;合并同底数幂：&lt;/p&gt;
&lt;p&gt;$$= 3^{x + 1} + x \cdot 3^{x - 1} - 3^{x + 1} - (x - 1) \cdot 3^{x - 1}$$&lt;/p&gt;
&lt;p&gt;合并同类项：&lt;/p&gt;
&lt;p&gt;$$= 3^{x - 1}$$&lt;/p&gt;
&lt;p&gt;所以当有至少 $2$ 个剩余的交易次数时，应将指数最大的交易替换掉，因为这样可以降低最多的总价。注意，当剩余的交易的指数都为 $0$ 时，就不能替换了。&lt;/p&gt;
&lt;p&gt;这样做复杂度还是太高了，怎么优化？可以考虑只记录每个指数的出现次数，然后直接批量替换交易。&lt;/p&gt;
&lt;h3 id=&#34;参考代码-3&#34;&gt;参考代码
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;易错点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;替换次数不能是负数&lt;/li&gt;
&lt;li&gt;多组数据不要忘记 &lt;code&gt;memset&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2132/submission/335139556&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #335139556&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2132d-from-1-to-infinity&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2132/problem/D&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;2132D. From 1 to Infinity&lt;/a&gt;
&lt;/h2&gt;&lt;h3 id=&#34;题意-4&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;12345678910111213...&lt;/code&gt; 的前 $k$ 个数字之和是多少？&lt;/p&gt;
&lt;p&gt;$k \leq 10^{15}$。&lt;/p&gt;
&lt;h3 id=&#34;题解-4&#34;&gt;题解
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Codeforces 官方题解没读懂，于是花了一晚上自己钻研出了一个方法。&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;观察发现，一位数在数字串中占据 $1 \times 9$ 个位置，二位数占据 $2 \times 90$ 个位置，以此类推。总结可得 $l$ 位数在数字串中占据 $9l \times 10^{l - 1}$ 个位置。&lt;/p&gt;
&lt;p&gt;那么，我们通过循环地从 $k$ 中减去 $9l \times 10^{l - 1}$ 直到 $k$ 小于 $9l \times 10^{l - 1}$ ，就可以得到 $k$ 所对应的数 $n$ 的位数。&lt;/p&gt;
&lt;p&gt;接着，我们使用 $k \div l$ 来获得 $n$ 在 $l$ 位数中是第几个，再加上 $10^{l - 1}$，即为 $n$ 的值。&lt;/p&gt;
&lt;p&gt;我们已经知道了第 $k$ 位数字所对应的数 $n$，那么 $1$ 到 $n-1$ 的数字之和可以通过以下方式来求出：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;把求和区间中加入一个 $0$，变为求 $[0, n-1]$ 的数字之和，这一步不影响最终结果。&lt;/li&gt;
&lt;li&gt;我们可以给所有数字加上前导零，使其与 $n-1$ 一样长（设长度为 $l$），这一步不影响最终结果。&lt;/li&gt;
&lt;li&gt;拆分求和区间：（该步骤递归进行，$x$ 代表当前求和区间右端点）
&lt;ul&gt;
&lt;li&gt;$x$ 的第一位为 $d_1$，第一位小于 $d_1$ 的构成一组（该部分可以直接求数字和，具体方法见 &lt;a class=&#34;link&#34; href=&#34;https://www.pythoner.work/post/expectation-calculate-digit-sum/&#34; &gt;用数学期望计算区间内整数各数位的和的和&lt;/a&gt;）；&lt;/li&gt;
&lt;li&gt;第一位等于 $d_1$ 的分成两部分：
&lt;ul&gt;
&lt;li&gt;第一部分为第一位等于 $d_1$ 的数，其中每个数的第一位被直接删除（该部分进入递归循环）；&lt;/li&gt;
&lt;li&gt;第二部分为 $d_1$ 乘上第一部分包括的数的个数。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;当 $x$ 为 $k \cdot 10^{m} - 1$ 的形式或一位数时，直接求和，结束递归。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;以 $n = 345$ 为例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;求 $[0, 345]$ 的数字和：
&lt;ul&gt;
&lt;li&gt;求 $[0, 299]$ 的数字和：
&lt;ul&gt;
&lt;li&gt;共有 $300$ 个数，可得后两位数字和为 $4.5 \times 300 \times 2 = 2700$；&lt;/li&gt;
&lt;li&gt;首位在 $[0, 2]$，期望为 $1$，所以首位数字和为 $1 \times 300 = 300$；&lt;/li&gt;
&lt;li&gt;因此 $[0, 299]$ 的数字和为 $2700 + 300 = 3000$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;求 $[0, 45]$ 的数字和：
&lt;ul&gt;
&lt;li&gt;求 $[0, 39]$ 的数字和，为 $240$。&lt;/li&gt;
&lt;li&gt;求 $[0, 5]$ 的数字和，为 $15$。&lt;/li&gt;
&lt;li&gt;$4 \times 6 = 24$。&lt;/li&gt;
&lt;li&gt;所以 $[0, 45]$ 的数字和为 $240 + 15 + 24 = 279$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$3 \times 46 = 138$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以 $[0, 345]$ 的数字和为 $3000 + 279 + 138 = 3417$。&lt;/p&gt;
&lt;h3 id=&#34;参考代码-4&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2132/submission/335238142&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #335238142&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2132e-arithmetics-competition&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2132/problem/E&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;2132E. Arithmetics Competition&lt;/a&gt;
&lt;/h2&gt;&lt;h3 id=&#34;题意-5&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;有两个数组 $a$ 和 $b$，$a$ 的长度为 $n$，$b$ 的长度为 $m$。&lt;/p&gt;
&lt;p&gt;给出 $q$ 次询问，每次询问包括三个数 $x, y, z$，表示在 $a$ 中至多选择 $x$ 个数，在 $b$ 中至多选择 $y$ 个数，总共选择 $z$ 个数，求选择的数字之和的最大值。&lt;/p&gt;
&lt;h3 id=&#34;题解-5&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;首先，考虑暴力解法。排序两个数组，每次询问的每次选择都选择可以选择的最大数字。&lt;/p&gt;
&lt;p&gt;显然，这样是无法通过问题的。那么，如何优化呢？&lt;/p&gt;
&lt;p&gt;我们最终在同一个数组里选择的数一定是在一个连续区间内，如果我们能计算出这个区间，那么就可以通过 $O(n)$ 前缀和预处理解决问题。&lt;/p&gt;
&lt;p&gt;设选择 $p$ 个 $a$ 中的数，总共选择 $z$ 个数（可以计算出选择 $b$ 中的元素数 $q$）时选择的数字之和的最大值为 $f(p, z)$，该值可以在 $O(1)$ 时间内计算出来。&lt;/p&gt;
&lt;p&gt;发现当 $z$ 不变时 $f$ 是一个单峰函数，于是采用三分搜索求解。&lt;/p&gt;
&lt;h3 id=&#34;参考代码-5&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2132/submission/335250108&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #335250108&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>CF-2131 (Codeforces Round 1042, Div. 3) 题解</title>
        <link>https://www.pythoner.work/post/cf-2131/</link>
        <pubDate>Wed, 13 Aug 2025 16:34:00 +0800</pubDate>
        
        <guid>https://www.pythoner.work/post/cf-2131/</guid>
        <description>&lt;img src="https://www.pythoner.work/post/cf-2131/image.png" alt="Featured image of post CF-2131 (Codeforces Round 1042, Div. 3) 题解" /&gt;&lt;h2 id=&#34;2131a-lever&#34;&gt;2131A. Lever
&lt;/h2&gt;&lt;h3 id=&#34;题意&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;有数组 $a, b$，长度为 $n$。现在循环进行操作，每次操作包含两步：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;选择一个 $1 \leq i \leq n$ 且 $a_i &amp;gt; b_i$，然后使 $a_i$ 减少 $1$；若没有这样的 $i$，则忽略这一步。&lt;/li&gt;
&lt;li&gt;选择一个 $1 \leq i \leq n$ 且 $a_i &amp;lt; b_i$，然后使 $a_i$ 增加 $1$；若没有这样的 $i$，则忽略这一步。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;若在某次操作中，步骤 $1$ 被忽略了，则终止循环。&lt;/p&gt;
&lt;p&gt;请问循环将会执行多少次？题目保证在任意一步中，对于所有可供选择的 $i$，不论选择哪个 $i$ 都不影响最终答案。&lt;/p&gt;
&lt;h3 id=&#34;题解&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;目力惊人的我们发现，步骤 $2$ 不会影响步骤 $1$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;证明&lt;/strong&gt;：对于某次操作中没有被忽略的步骤 $2$，选择的下标为 $i$，由于 $a_i &amp;lt; b_i$，可得 $a&amp;rsquo;_i \leq b_i$。因此，操作后的 $i$ 不可能被步骤 $1$ 选择，即步骤 $2$ 不影响步骤 $1$。&lt;/p&gt;
&lt;p&gt;对于每个 $i$，操作 $1$ 至多可以执行 $\max(a_i - b_i, 0)$ 次。&lt;/p&gt;
&lt;p&gt;遍历每个 $i$，累加操作 $1$ 的次数，最后加上 $1$（被忽略的那一次）即为答案。&lt;/p&gt;
&lt;h3 id=&#34;参考代码&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2131/submission/333289337&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #333289337&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2131b-alternating-series&#34;&gt;2131B. Alternating Series
&lt;/h2&gt;&lt;h3 id=&#34;题意-1&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;定义长度为 $n$ 的数组 $a$ 是&lt;strong&gt;好的&lt;/strong&gt;当且仅当：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;对于每个 $1 \leq i \le n$，$a_i \times a_{i + 1} \le 0$；&lt;/li&gt;
&lt;li&gt;所有长度为 $2$ 以上的子数组的元素之和都为正。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;定义&lt;strong&gt;好的&lt;/strong&gt;数组 $a$ 比另一个&lt;strong&gt;好的&lt;/strong&gt;数组 $b$ &lt;strong&gt;更好&lt;/strong&gt;当且仅当 $[|a_1|, |a_2|, \ldots, |a_n|]$ 比 $[|b_1|, |b_2|, \ldots, |b_n|]$ 的字典序更小。&lt;/p&gt;
&lt;p&gt;输出一个长度为 $n$ 的&lt;strong&gt;好的&lt;/strong&gt;数组，使其比所有长度为 $n$ 的&lt;strong&gt;好的&lt;/strong&gt;数组&lt;strong&gt;更好&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;题解-1&#34;&gt;题解
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;这题完全可以找规律做&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;注意到&lt;strong&gt;好的&lt;/strong&gt;数组满足：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;符号交替出现；&lt;/li&gt;
&lt;li&gt;所有长度为 $2$ 以上的子数组的元素之和都为正。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;证明&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;考虑子数组 $[a_{i - 1}, a_i, a_{i + 1}]$，其中 $2 \leq i \leq n - 1$。根据符号交替性：&lt;/p&gt;
&lt;p&gt;$$a_{i - 1} + a_i + a_{i + 1} \leq -1 + a_i - 1 = a_i - 2$$&lt;/p&gt;
&lt;p&gt;而根据题目要求 $a_{i - 1} + a_i + a_{i + 1} \geq 1$ 可得：&lt;/p&gt;
&lt;p&gt;$$a_i \geq 3$$&lt;/p&gt;
&lt;p&gt;对于边界情况 $i = n$，同理易得 $a_i \geq 2$。&lt;/p&gt;
&lt;p&gt;综上可得数组构造方法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;对于奇数下标，取 $a_i = -1$&lt;/li&gt;
&lt;li&gt;对于偶数下标
&lt;ul&gt;
&lt;li&gt;当 $2 \leq i \leq n - 1$ 时，有 $a_i \geq 3$，为了绝对值字典序最小，取 $3$。&lt;/li&gt;
&lt;li&gt;当 $i = n$ 时，有 $a_i \geq 2$，同理取 $2$。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;正确性证明&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;符号交替性显然满足&lt;/li&gt;
&lt;li&gt;对于任意长度 $k \geq 2$ 的子数组 $s$：
&lt;ul&gt;
&lt;li&gt;当 $k = 2$ 时：由一个 $2$ 或 $3$ 与一个 $-1$ 组成，$\sum s \geq 2 - 1 = 1$；&lt;/li&gt;
&lt;li&gt;当 $k = 3$ 时：
&lt;ul&gt;
&lt;li&gt;$[3, -1, (2 or 3)]$，$\sum s \geq 3 - 1 + 2 = 4$，&lt;/li&gt;
&lt;li&gt;$[-1, 3, -1]$，$\sum s \geq -1 + 3 - 1 = 1$；&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;当 $k \geq 4$ 时：可以看作多个子数组的和，为正。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;参考代码-1&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2131/submission/333498392&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #333498392&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2131c-make-it-equal&#34;&gt;2131C. Make it Equal
&lt;/h2&gt;&lt;h3 id=&#34;题意-2&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;给定两个可重集合 $S$ 和 $T$，可以对 $S$ 中任意一个元素 $x$ 进行操作：将 $S$ 中的一个 $x$ 替换为 $x + k$ 或 $|x - k|$。&lt;/p&gt;
&lt;p&gt;请问是否可以将 $S$ 变化为 $T$？&lt;/p&gt;
&lt;h3 id=&#34;题解-2&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;容易证明：我们只能将元素 $x$ 替换为 $y$ 当且仅当 $x \equiv y (\bmod k)$ 或 $x \equiv -y (\bmod k)$。&lt;/p&gt;
&lt;p&gt;实现：存储 $S_i \bmod k$ 与 $-S_i \bmod k$ 中较小的一个，比较两集合经过这样处理后的新集合是否相同即可。&lt;/p&gt;
&lt;h3 id=&#34;参考代码-2&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2131/submission/333526673&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #333526673&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2131d-arboris-contractio&#34;&gt;2131D. Arboris Contractio
&lt;/h2&gt;&lt;h3 id=&#34;题意-3&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;有一棵拥有 $n$ 个节点的树，你希望尽可能地缩小它的&lt;a class=&#34;link&#34; href=&#34;https://oi-wiki.org/graph/tree-diameter/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;直径&lt;/a&gt;。为了缩小直径，你可以对这棵树进行若干次操作：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;选择两个树上的节点 $s$ 和 $t$；&lt;/li&gt;
&lt;li&gt;删除这两个节点简单路径上的所有边；&lt;/li&gt;
&lt;li&gt;连接 $s$ 和简单路径上的除 $s$ 外的所有节点。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;容易证明每次操作后，这张图还是树。&lt;/p&gt;
&lt;p&gt;请问：最少进行多少次操作，使得树的直径最小化？&lt;/p&gt;
&lt;h3 id=&#34;题解-3&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;容易发现：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;分类讨论
&lt;ul&gt;
&lt;li&gt;对于 $n \leq 3$ 的树，不需要操作
&lt;ul&gt;
&lt;li&gt;$n = 1$，直径为 $0$，是最小值&lt;/li&gt;
&lt;li&gt;$n = 2$，直径为 $1$，是最小值&lt;/li&gt;
&lt;li&gt;$n = 3$，直径为 $2$，是最小值&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;对于 $n &amp;gt; 3$ 的树，树的直径最小值为 $2$
&lt;ul&gt;
&lt;li&gt;直径为 $1$ 意味着树中最长简单路径上只有 $2$ 个节点，在 $n &amp;gt; 3$ 条件下，不可能存在&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;操作的作用在于使某条简单路径上的所有点与简单路径某一端点&lt;strong&gt;直接&lt;/strong&gt;相连&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;稍加推导即可得到关键结论：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;我们应该选择一个固定的节点作为根节点，然后使其作为 $s$ 参与每次操作。&lt;/li&gt;
&lt;li&gt;树的直径是 $2$ 的充要条件是叶节点的深度全为 $1$。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;证明关键结论2：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;必要性（如果树的直径是 $2$，那么所有叶节点的深度必须是 $1$）
&lt;ol&gt;
&lt;li&gt;假设树的直径是 $2$，这意味着树中最长的简单路径包含 $3$ 个节点（路径长度为 $2$）。&lt;/li&gt;
&lt;li&gt;如果存在一个叶节点 $u$，其深度大于 $1$，那么它至少通过一个中间节点连接到根节点。&lt;/li&gt;
&lt;li&gt;由于树的结构，这个叶节点 $u$ 到根节点的距离大于 $1$，即路径长度至少为 $2$。&lt;/li&gt;
&lt;li&gt;同时，因为 $u$ 是叶节点，它没有其他子节点，所以从 $u$ 出发的最长路径只能回到它的父节点，再延伸到根节点。&lt;/li&gt;
&lt;li&gt;由于 $n &amp;gt; 3$，所以这条路径可以延伸到其它连接到根的节点。&lt;/li&gt;
&lt;li&gt;这样会导致存在一条路径长度大于 $2$，与“直径为 $2$”矛盾。&lt;/li&gt;
&lt;li&gt;因此，若树的直径为 $2$，所有叶节点必须直接连接到根节点，即深度为 $1$。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;充分性（如果所有叶节点的深度都是 $1$，那么树的直径是 $2$）
&lt;ol&gt;
&lt;li&gt;假设所有叶节点的深度都是 $1$，即它们都直接与根节点相连。&lt;/li&gt;
&lt;li&gt;那么树的结构是以根为中心的星形结构，所有叶节点都连接在根上。&lt;/li&gt;
&lt;li&gt;在这种结构中，任意两个节点之间的最长路径是从一个叶节点到根再到另一个叶节点，路径长度为 $2$。&lt;/li&gt;
&lt;li&gt;因此，树的直径为 $2$。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此，我们每次选择一个深度非 $1$ 的叶节点进行操作即可。容易证明，这样的操作只会使一个叶节点的深度从非 $1$ 变为 $1$。&lt;/p&gt;
&lt;p&gt;那么，如何选择最佳的根节点呢？&lt;/p&gt;
&lt;p&gt;由于无论选择怎样的 $root$，我们都是对所有深度非 $1$ 的叶节点逐个做一次操作，因此，我们只需统计所有深度非 $1$ 的叶节点的个数（记作 $ans$）即可。&lt;/p&gt;
&lt;p&gt;显而易见地，我们有：（$cnt_0$ 表示叶节点总个数，$cnt_{root}$ 表示直接连接 $root$ 的叶节点个数）&lt;/p&gt;
&lt;p&gt;$$ ans = cnt_0 - cnt_{root} $$&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$cnt_0$ 可以通过数节点的度数来 $O(n)$ 地计算；&lt;/li&gt;
&lt;li&gt;$cnt_{root}$ 通过 $root$ 连接的每个点的度数来计算，由于树的边数性质，复杂度为 $O(n)$。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;参考代码-3&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2131/submission/333756238&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #333756238&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2131e-adjacent-xor&#34;&gt;2131E. Adjacent XOR
&lt;/h2&gt;&lt;h3 id=&#34;题意-4&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;有一个长度为 $n$ 的数组 $a$。你可以对每个 $1 \leq i &amp;lt; n$ 做&lt;strong&gt;至多一次&lt;/strong&gt;操作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将 $a_i$ 改为 $a_i \oplus a_{i + 1}$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;其中，$\oplus$ 表示&lt;a class=&#34;link&#34; href=&#34;https://oi-wiki.org/math/bit/#%E4%B8%8E%E6%88%96%E5%BC%82%E6%88%96&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;异或运算&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;请问能否将 $a$ 变为 $b$？&lt;/p&gt;
&lt;h3 id=&#34;题解-4&#34;&gt;题解
&lt;/h3&gt;&lt;p&gt;若 $a_n \neq b_n$，则完全不可能。&lt;/p&gt;
&lt;p&gt;考虑 $a_i$ 与 $a_{i + 1}$，在以下情况下是可以使 $a_i$ 变为 $b_i$ 的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$a_i = b_i$，不用操作。&lt;/li&gt;
&lt;li&gt;$a_i \oplus a_{i + 1} = b_i$，先操作 $a_i$，再决定要不要操作 $a_{i + 1}$。&lt;/li&gt;
&lt;li&gt;$a_i \oplus b_{i + 1} = b_i$，先决定要不要操作 $a_{i + 1}$，再操作 $a_i$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;容易发现，如果将每个 $a_i$ 与 $a_{i + 1}$ 的操作顺序连边，构成的图必定是&lt;a class=&#34;link&#34; href=&#34;https://oi-wiki.org/graph/dag/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;有向无环&lt;/a&gt;的，或者说我们构建了一个&lt;a class=&#34;link&#34; href=&#34;https://oi-wiki.org/graph/topo/#aov-%E7%BD%91&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AOV网&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;例如以下样例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-plain&#34; data-lang=&#34;plain&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;n = 8
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;a = [3, 3, 5, 5, 0, 3, 3, 6]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;b = [5, 6, 3, 6, 3, 0, 5, 6]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;EXPECTED = YES
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;构建出的图是这样的：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.pythoner.work/post/cf-2131/E.png&#34;
	width=&#34;850&#34;
	height=&#34;131&#34;
	srcset=&#34;https://www.pythoner.work/post/cf-2131/E_hu_a72c247d89ec1d4e.png 480w, https://www.pythoner.work/post/cf-2131/E_hu_63103f41fb89bef2.png 1024w&#34;
	loading=&#34;lazy&#34;
	
		alt=&#34;1&amp;lt;-2-&amp;gt;3&amp;lt;-4&amp;lt;-5-&amp;gt;6-&amp;gt;7-&amp;gt;8&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;648&#34;
		data-flex-basis=&#34;1557px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;因此，构成的图是可以&lt;a class=&#34;link&#34; href=&#34;https://oi-wiki.org/graph/topo/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;拓扑排序&lt;/a&gt;的，即必定存在一种方案可以完成全部需要完成的操作。&lt;/p&gt;
&lt;p&gt;结论：只要对于所有 $1 \leq i &amp;lt; n$，都有以下三个条件之一为真：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$a_i = b_i$&lt;/li&gt;
&lt;li&gt;$a_i \oplus a_{i + 1} = b_i$&lt;/li&gt;
&lt;li&gt;$a_i \oplus b_{i + 1} = b_i$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那么就可以将 $a$ 转变为 $b$。&lt;/p&gt;
&lt;h3 id=&#34;参考代码-4&#34;&gt;参考代码
&lt;/h3&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2131/submission/333464914&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #333464914&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>CF-2128 (Codeforces Round 1039, Div. 2) 题解</title>
        <link>https://www.pythoner.work/post/cf-2128/</link>
        <pubDate>Sat, 09 Aug 2025 21:32:00 +0800</pubDate>
        
        <guid>https://www.pythoner.work/post/cf-2128/</guid>
        <description>&lt;blockquote&gt;
&lt;p&gt;很神奇啊，AB两道题都不知道怎么过的&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;2128a-recycling-center&#34;&gt;2128A. Recycling Center
&lt;/h2&gt;&lt;h3 id=&#34;题意重述&#34;&gt;题意重述
&lt;/h3&gt;&lt;p&gt;有 $n$ 个垃圾袋，每个垃圾袋的重量为 $a_i$。&lt;/p&gt;
&lt;p&gt;每次行动你可以选择一个垃圾袋，将它摧毁（应该是回收掉吧？）。若其重量大于 $c$，你需要消耗 $1$ 金币；反之这个垃圾袋可以免费摧毁。同时，其他的垃圾袋重量翻倍。&lt;/p&gt;
&lt;p&gt;输出：摧毁掉所有垃圾袋所消耗的最小金币数。&lt;/p&gt;
&lt;h3 id=&#34;解法&#34;&gt;解法
&lt;/h3&gt;&lt;h4 id=&#34;思路&#34;&gt;思路
&lt;/h4&gt;&lt;p&gt;考虑垃圾袋中有且仅有一个可以免费摧毁的情况，那么显然应该优先摧毁这个免费的。&lt;/p&gt;
&lt;p&gt;回到问题，有多个可以免费摧毁的话，应该优先摧毁这些垃圾袋中的哪个？应该优先摧毁最重的免费摧毁垃圾袋，因为它将会最快地变成付费垃圾袋。&lt;/p&gt;
&lt;p&gt;这样的话，就可以通过排序解决问题。&lt;/p&gt;
&lt;h4 id=&#34;参考代码&#34;&gt;参考代码
&lt;/h4&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2128/submission/331279467&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #331279467&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2128b-deque-process&#34;&gt;2128B. Deque Process
&lt;/h2&gt;&lt;h3 id=&#34;题意重述-1&#34;&gt;题意重述
&lt;/h3&gt;&lt;p&gt;当且仅当一个长度为 $n$ 的数组 $a$ 中存在连续的 $5$ 个数是递减或递增的时，我们定义这个数组是坏的，反之它是好的。&lt;/p&gt;
&lt;p&gt;有一个排列 $p_1, p_2,&amp;hellip; , p_n$，你要从这个排列的左侧或右侧移除元素，直至所有元素都被移除。&lt;/p&gt;
&lt;p&gt;给出移除元素的方式使得移出的元素组成的数组是好的。如果有多种移除方法，输出任意一种。题目保证一定存在答案。&lt;/p&gt;
&lt;h3 id=&#34;解法-1&#34;&gt;解法
&lt;/h3&gt;&lt;h4 id=&#34;思路-1&#34;&gt;思路
&lt;/h4&gt;&lt;p&gt;只需保证可以打断目前形成的递减或递增趋势即可。不妨假设移出元素构成的数组 $q$ 满足 $q_1 &amp;lt; q_2 &amp;gt; q_3 &amp;lt; q_4 &amp;gt; q_5 &amp;hellip;$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;证明&lt;/strong&gt;：在奇数轮取左右两个中较小的，则必定可以在偶数轮取到比上轮大的数，此时在偶数轮取较大的，则必定可以在奇数轮取到比上轮小的数……直到取完所有元素。&lt;/p&gt;
&lt;h4 id=&#34;参考代码-1&#34;&gt;参考代码
&lt;/h4&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2128/submission/333145898&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #333145898&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;2128c-leftmost-below&#34;&gt;2128C. Leftmost Below
&lt;/h2&gt;&lt;h3 id=&#34;题意重述-2&#34;&gt;题意重述
&lt;/h3&gt;&lt;p&gt;有一个长度为 $n$ 的数组 $a$，初始值为 $0$。&lt;/p&gt;
&lt;p&gt;你可以做若干次操作，每次操作你可以选择一个大于 $min(a)$ 的数 $x$，它将加到数组中从左到右第一个小于 $x$ 的数。&lt;/p&gt;
&lt;p&gt;请问是否可以让 $a$ 变为数组 $b$？&lt;/p&gt;
&lt;h3 id=&#34;解法-2&#34;&gt;解法
&lt;/h3&gt;&lt;h4 id=&#34;思路-2&#34;&gt;思路
&lt;/h4&gt;&lt;p&gt;对于每个 $2 \leq i \leq n$，令 $m_i = \min(b_1, \ldots, b_{i-1})$。可以证明：当且仅当对于所有 $2 \leq i \leq n$ 满足 $b_i - m_i &amp;lt; m_i$ 时，可以达成 $a = b$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;充分性证明&lt;/strong&gt;：可以从左至右构建数组 $a$。对于每个 $i$，若 $b_i &amp;lt; m_i$，则直接添加 $b_i$；否则，先添加 $b_i - m_i$，再添加 $m_i$。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;必要性证明&lt;/strong&gt;：假设构造 $a = b$。在每一步中，均有 $a_i \leq b_i$。考虑最后一次对 $a_i$ 进行操作的值 $x$。根据 $i$ 的定义，必有
$$a_i &amp;lt; x \leq \min(a_1, \ldots, a_{i - 1}) \leq \min(b_1, \ldots, b_{i-1})$$
因此，$b_i = a_i + x \leq 2x - 1 \leq 2m_i - 1$。&lt;/p&gt;
&lt;h4 id=&#34;参考代码-2&#34;&gt;参考代码
&lt;/h4&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://codeforces.com/contest/2128/submission/333148494&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Submission #333148494&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        <item>
        <title>CF-2122 (Codeforces Round 1038, Div. 1 &#43; 2) 题解</title>
        <link>https://www.pythoner.work/post/cf-2122/</link>
        <pubDate>Mon, 21 Jul 2025 15:31:00 +0800</pubDate>
        
        <guid>https://www.pythoner.work/post/cf-2122/</guid>
        <description>&lt;h2 id=&#34;2122a-greedy-grid&#34;&gt;2122A. Greedy Grid
&lt;/h2&gt;&lt;h3 id=&#34;题意&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;定义 Greedy Path 为：从左上角出发，每次向右或下的相邻一格移动，且移动的格子的值不小于另一个选择。&lt;/p&gt;
&lt;p&gt;路径的值为：经过的所有格子权值之和。&lt;/p&gt;
&lt;p&gt;问题：存不存在 $n \times m$ 的由非负整数组成的网格，满足没有 Greedy Path 的值达到“所有向(右/下)走的路径的值的最大值”？&lt;/p&gt;
&lt;h3 id=&#34;解法&#34;&gt;解法
&lt;/h3&gt;&lt;h4 id=&#34;思路&#34;&gt;思路
&lt;/h4&gt;&lt;p&gt;Greedy Path 会向大的方向走，因此考虑一种设计网格的方案：把 Greedy Path “引诱” 到一条起始格非常大、后面都很小的路径上；再构造一条起始小、后面非常大的路径，使这条路径值大于 Greedy Path 即可。&lt;/p&gt;
&lt;p&gt;图为 $3 \times 3$ 的例子：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.pythoner.work/post/cf-2122/A.png&#34;
	width=&#34;582&#34;
	height=&#34;620&#34;
	srcset=&#34;https://www.pythoner.work/post/cf-2122/A_hu_78792a4b36a3e9d7.png 480w, https://www.pythoner.work/post/cf-2122/A_hu_765c2041403ee040.png 1024w&#34;
	loading=&#34;lazy&#34;
	
	
		class=&#34;gallery-image&#34; 
		data-flex-grow=&#34;93&#34;
		data-flex-basis=&#34;225px&#34;
	
&gt;&lt;/p&gt;
&lt;p&gt;什么时候无法构造出这样的网格呢？&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;只有一条路径，即 $n = 1$ 或 $m = 1$；&lt;/li&gt;
&lt;li&gt;两条路径不重合的部分只有一个点，即 $n = m = 2$。（假设构造的是 $a_{1, 2} &amp;gt; a_{2, 1}$，由于 $a_{1, 1} + a_{1, 2} + a_{2, 2} &amp;gt; a_{1, 1} + a_{2, 1} + a_{2, 2}$，两种路径会重合）&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;结论&#34;&gt;结论
&lt;/h4&gt;&lt;p&gt;$n = 1$ 或 $m = 1$ 时，只有一条路径，因此输出 &lt;code&gt;No&lt;/code&gt;；&lt;/p&gt;
&lt;p&gt;$n = m = 2$ 时，只有两条路径，因为 Greedy Path 会走向值较大的格，最大值的路线也是这样，所以 Greedy Path 的路线和最大值路线一定是一样的，也输出 &lt;code&gt;No&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;容易证明，其他情况下都存在满足题意的网格，输出 &lt;code&gt;Yes&lt;/code&gt;。&lt;/p&gt;
&lt;h4 id=&#34;参考代码&#34;&gt;参考代码
&lt;/h4&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;namespace&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;std&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;n&#34;&gt;cin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;t&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;--&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;n&#34;&gt;cin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;n&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;n&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;m&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;n&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;m&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;puts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;No&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;puts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Yes&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;2122b-pile-shuffling&#34;&gt;2122B. Pile Shuffling
&lt;/h2&gt;&lt;h3 id=&#34;题意-1&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;你有 $n$ 摞数字，每摞由 $a_i$ 个 &lt;code&gt;0&lt;/code&gt; 和 $b_i$ 个 &lt;code&gt;1&lt;/code&gt; 组成，其中 &lt;code&gt;0&lt;/code&gt; 在上面，&lt;code&gt;1&lt;/code&gt; 在下面。&lt;/p&gt;
&lt;p&gt;每次操作你只能将任意一摞数字的最上方的一个数移动到任意一摞的任意位置。&lt;/p&gt;
&lt;p&gt;最终要求每一摞数字由上面的 $c_i$ 个 &lt;code&gt;0&lt;/code&gt; 和下面的 $d_i$ 个 &lt;code&gt;1&lt;/code&gt; 组成，输出最小操作次数。&lt;/p&gt;
&lt;h3 id=&#34;解法-1&#34;&gt;解法
&lt;/h3&gt;&lt;h4 id=&#34;思路-1&#34;&gt;思路
&lt;/h4&gt;&lt;p&gt;只考虑挪出数字的情况。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;若 $b_i &amp;gt; d_i$，我们需要将所有上面的 &lt;code&gt;0&lt;/code&gt; 挪开（到本摞要挪走的最靠下一个 &lt;code&gt;1&lt;/code&gt; 的下面或到其他堆），操作次数是 $\min(a_i, c_i) + b_i - d_i$（因为可以先挪 &lt;code&gt;1&lt;/code&gt;，也可以后挪 &lt;code&gt;1&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;若 $a_i &amp;gt; c_i$，我们需要将 $a_i - c_i$ 个 &lt;code&gt;0&lt;/code&gt; 挪走，操作次数是 $a_i - c_i$。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;结论-1&#34;&gt;结论
&lt;/h4&gt;&lt;p&gt;对于每堆数字：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;若 $a_i &amp;gt; c_i$，$ans += a_i - c_i$。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;若 $b_i &amp;gt; d_i$，$ans += a_i + b_i - d_i$。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;参考代码-1&#34;&gt;参考代码
&lt;/h4&gt;&lt;blockquote&gt;
&lt;p&gt;赛时没关同步过了，刚刚交的不关同步过不了？&lt;/p&gt;&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;namespace&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;std&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;n&#34;&gt;ios&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sync_with_stdio&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;n&#34;&gt;cin&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tie&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;nullptr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;n&#34;&gt;cout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tie&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;nullptr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;n&#34;&gt;cin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;t&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;--&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;n&#34;&gt;cin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;kt&#34;&gt;long&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;long&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;n&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;--&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;			&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;d&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;			&lt;span class=&#34;n&#34;&gt;cin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;d&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;			&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;			&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;d&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;min&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;d&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;n&#34;&gt;cout&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ans&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;endl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;2122c-manhattan-pairs&#34;&gt;2122C. Manhattan Pairs
&lt;/h2&gt;&lt;h3 id=&#34;题意-2&#34;&gt;题意
&lt;/h3&gt;&lt;p&gt;将 $n$ 个点分成 $\frac{n}{2}$ 对，使得每对点之间的曼哈顿距离之和最大。输出任意一种配对方案。&lt;/p&gt;
&lt;p&gt;保证 $\sum{n} \leq 2 \times 10^5$，$n$ 是偶数。&lt;/p&gt;
&lt;h3 id=&#34;解法-2&#34;&gt;解法
&lt;/h3&gt;&lt;h4 id=&#34;思路-2&#34;&gt;思路
&lt;/h4&gt;&lt;p&gt;考虑一维情况，最优方案是将最小的 $\frac{n}{2}$ 个点与最大的 $\frac{n}{2}$ 个点配对。&lt;/p&gt;
&lt;p&gt;那么开始考虑二维情况，最优方案显然是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$x$ 坐标最小的 $\frac{n}{2}$ 个点（定义为 $X_l$）与最大的 $\frac{n}{2}$ 个点（定义为 $X_r$）配对；&lt;/li&gt;
&lt;li&gt;$y$ 坐标最小的 $\frac{n}{2}$ 个点（定义为 $Y_l$）与最大的 $\frac{n}{2}$ 个点（定义为 $Y_r$）配对。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以我们将所有点分成 $4$ 部分处理：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$X_l \cap Y_l$ 与 $X_r \cap Y_r$ 配对；&lt;/li&gt;
&lt;li&gt;$X_l \cap Y_r$ 与 $Y_r \cap Y_l$ 配对。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$|X_l \cap Y_l| = a$&lt;/li&gt;
&lt;li&gt;$|X_r \cap Y_r| = b$&lt;/li&gt;
&lt;li&gt;$|X_l \cap Y_r| = c$&lt;/li&gt;
&lt;li&gt;$|Y_r \cap Y_l| = d$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那么有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$a + c = b + d$，因为 $|X_l| = |X_r|$；&lt;/li&gt;
&lt;li&gt;$a + d = b + c$，因为 $|Y_l| = |Y_r|$。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;两式相加、移项、系数化为1 后可得：$a = b$ 和 $c = d$，所以刚刚提到的配对方法不会出现剩下的点。&lt;/p&gt;
&lt;h4 id=&#34;结论-2&#34;&gt;结论
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;$X_l \cap Y_l$ 与 $X_r \cap Y_r$ 配对；&lt;/li&gt;
&lt;li&gt;$X_l \cap Y_r$ 与 $X_r \cap Y_l$ 配对。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;参考代码-2&#34;&gt;参考代码
&lt;/h4&gt;&lt;blockquote&gt;
&lt;p&gt;参考了 Tourist 的解法，通过三次排序分出了四组。&lt;/p&gt;&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;cstring&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;algorithm&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;namespace&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;std&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;N&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;2e5&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;idx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;N&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;n&#34;&gt;cin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;t&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;--&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;n&#34;&gt;cin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;++&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;			&lt;span class=&#34;n&#34;&gt;cin&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;			&lt;span class=&#34;n&#34;&gt;idx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;n&#34;&gt;sort&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;idx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;idx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;](&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;n&#34;&gt;sort&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;idx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;idx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;n&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;](&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;n&#34;&gt;sort&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;idx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;n&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;idx&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;](&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;j&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;c1&#34;&gt;// Xl&amp;amp;Yl, Xl&amp;amp;Yr, Xr&amp;amp;Yl, Xr&amp;amp;Yr
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;&lt;/span&gt;		&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;n&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;++&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;			&lt;span class=&#34;n&#34;&gt;cout&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;idx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;sc&#34;&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;idx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;n&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;endl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
        </item>
        
    </channel>
</rss>
