<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Misc on 练习本</title><link>https://4hh.github.io/misc/</link><description>Recent content in Misc on 练习本</description><generator>Hugo</generator><language>zh-cn</language><copyright>&lt;!--Creative Commons License--&gt;This site is licensed under a &lt;a href="https://creativecommons.org/licenses/by-sa/4.0/"&gt;CC-BY-SA 4.0&lt;/a&gt; license.&lt;!--/Creative Commons License--&gt;</copyright><lastBuildDate>Thu, 27 Nov 2025 18:51:59 +0800</lastBuildDate><atom:link href="https://4hh.github.io/misc/index.xml" rel="self" type="application/rss+xml"/><item><title>第十七届北京信息科技大学程序设计竞赛</title><link>https://4hh.github.io/misc/nowcoder-bistu-17th/</link><pubDate>Thu, 27 Nov 2025 18:51:59 +0800</pubDate><guid>https://4hh.github.io/misc/nowcoder-bistu-17th/</guid><description>&lt;p&gt;&lt;a href="https://ac.nowcoder.com/acm/contest/122913"&gt;比赛🔗&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="problem-a-小苯接雨水"&gt;Problem A. 小苯接雨水&lt;/h1&gt;
&lt;p&gt;把前两大的挡板放在左右两端。&lt;/p&gt;
&lt;h1 id="problem-b-小芳与残骸"&gt;Problem B. 小芳与残骸&lt;/h1&gt;
&lt;p&gt;模拟几个样例，发现答案就是 $2^{n - 1}$&lt;/p&gt;
&lt;h1 id="problem-c-小苯的棋盘游戏"&gt;Problem C. 小苯的棋盘游戏&lt;/h1&gt;
&lt;p&gt;发现如果行数和列数有一个是奇数，那么一定存在解。&lt;/p&gt;
&lt;h1 id="problem-d-暴暴龙的防奶龙要塞"&gt;Problem D. 暴暴龙的防奶龙要塞&lt;/h1&gt;
&lt;p&gt;多画图，我们发现当 $n \le 4$ 的时候无解。当 $n \ge 5$ 时，可以这样构造：中间一个点，点的两边分别和两个环通过两条边进行连接。&lt;/p&gt;
&lt;p&gt;最小的环其实就是一条边。因此构造方案就是：(1,2) 连接一条边。[4,n]构成一个环。3 作为中间点，和上面每个环分别连接两条边。&lt;/p&gt;
&lt;h1 id="problem-e-奶龙与奥利奥自动机"&gt;Problem E. 奶龙与奥利奥自动机&lt;/h1&gt;
&lt;p&gt;组合数学题目。&lt;/p&gt;
&lt;p&gt;设 $num_k$ 代表使用 $k$ 次操作，能够产生的非空字符串的数量。 $a_k$ 代表使用 $k$ 次操作，产生的非空字符串中，结尾是 0 的字符串的数量。 $b_k$ 代表使用 $k$ 次操作，产生的非空字符串中，结尾是 $1$ 的字符串的数量。 $c_k$ 代表使用 $k$ 次操作，产生的非空字符串中，结尾是 $01$ 的字符串的数量。&lt;/p&gt;
&lt;p&gt;我们有这样的递推关系： $num_k = a_k + b_k + c_k$ ， $a_k = c_k = num_{k - 1}$ ， $b_k = b_{k - 1} + c_{k - 1}$&lt;/p&gt;
&lt;p&gt;根据上面的关系，可以得到 $num_k = 3num_{k - 1} - num_{k - 2}$&lt;/p&gt;
&lt;p&gt;答案就是 $\sum_{k = 0}^{n} num_{k}$&lt;/p&gt;
&lt;p&gt;初始状态下， $num_0 = 1$ ， $num_1 = 3$ 。其中 $num_0 = 1$ 代表的含义其实是空字符串，0 次操作只有一种情况，把它作为特殊情况处理。&lt;/p&gt;
&lt;div data-codeblock itemscope itemtype="https://schema.org/SoftwareSourceCode" &gt;
&lt;button data-codebutton class="codebutton" title="Copy code"&gt;&lt;span&gt;⧉&lt;/span&gt;&lt;/button&gt;
&lt;meta itemprop="codeSampleType" content="snippet"&gt;
&lt;meta data-codetext itemprop="text" content="&amp;#34;void solve() {\n int n;\n cin \u003e\u003e n;\n ll ans = 0;\n ll a = 1, b = 3;\n ans &amp;#43;= a &amp;#43; b;\n\n For1(i, 2, n) {\n ll c = (3 * b - a &amp;#43; MOD1) % MOD1;\n a = b;\n b = c;\n ans = (ans &amp;#43; b) % MOD1;\n }\n cout \u003c\u003c ans \u003c\u003c &amp;#39;\\n&amp;#39;;\n}&amp;#34;"&gt;
&lt;meta itemprop="programmingLanguage" content="cpp"&gt;
&lt;pre tabindex="0" class="chroma"&gt;
&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;void&lt;/span&gt; &lt;span style="color:#6639ba"&gt;solve&lt;/span&gt;&lt;span style="color:#1f2328"&gt;()&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ll ans &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ll a &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; b &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;3&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ans &lt;span style="color:#0550ae"&gt;+=&lt;/span&gt; a &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For1&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ll c &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;3&lt;/span&gt; &lt;span style="color:#0550ae"&gt;*&lt;/span&gt; b &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; a &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; MOD1&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#0550ae"&gt;%&lt;/span&gt; MOD1&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; a &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; b &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; c&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ans &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;ans &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#0550ae"&gt;%&lt;/span&gt; MOD1&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; ans &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;h1 id="problem-f-奶龙智斗暴暴龙"&gt;Problem F. 奶龙智斗暴暴龙&lt;/h1&gt;
&lt;p&gt;猜到采用极端分配的方式比较优。&lt;/p&gt;
&lt;p&gt;在桶 A 中放置 1 个白球，在桶 B 中放置 $n-1$ 个白球和 $n$ 个黑球。此时如果选择桶 A，那么取到白球的概率是 1. 如果选择桶 B，那么取到白球的概率是 $\frac{n-1}{2n-1}$&lt;/p&gt;
&lt;p&gt;最终答案是 $\frac{3n-2}{4n-2}$&lt;/p&gt;
&lt;h1 id="problem-g-小红的抛物线"&gt;Problem G. 小红的抛物线&lt;/h1&gt;
&lt;p&gt;把三个点按照横坐标排序，设三个点是 $a, b, c$ ，从 $b$ 做 $x$ 轴的垂线，交线段 $a, c$ 于点 $d$ ，判断点 $d$ 和点 $b$ 的 Y 坐标的大小即可。&lt;/p&gt;
&lt;h1 id="problem-h-小苯的序列染色"&gt;Problem H. 小苯的序列染色&lt;/h1&gt;
&lt;p&gt;每个点可能向左扩展，也可能向右扩展，也就是每个点最多对应 2 个区间。一共有 $2n$ 个区间。问题转化成从这些区间中选出最少的区间，使得这些区间能够覆盖 $[1, n]$&lt;/p&gt;
&lt;p&gt;这可以贪心：先按照区间的左端点从小到大排序。维护当前能够覆盖的最远距离 &lt;code&gt;cur_end&lt;/code&gt;，如果当前区间的左端点 &lt;code&gt;l &amp;lt;= cur_end + 1&lt;/code&gt;, 说明当前区间能够接上之前一段。那么从能够接上的这些区间中，选择一个右端点 $r$ 最大的。如果找不到能够接上的区间，直接返回无解。&lt;/p&gt;
&lt;div data-codeblock itemscope itemtype="https://schema.org/SoftwareSourceCode" &gt;
&lt;button data-codebutton class="codebutton" title="Copy code"&gt;&lt;span&gt;⧉&lt;/span&gt;&lt;/button&gt;
&lt;meta itemprop="codeSampleType" content="snippet"&gt;
&lt;meta data-codetext itemprop="text" content="&amp;#34;void solve() {\n int n;\n cin \u003e\u003e n;\n\n VI a(n &amp;#43; 1);\n For1(i, 1, n) cin \u003e\u003e a[i];\n\n vector\u003cPII\u003e b;\n For1(i, 1, n) {\n int l = i - a[i] &amp;#43; 1, r = i &amp;#43; a[i] - 1;\n if (l \u003e= 1 \u0026\u0026 l \u003c= n \u0026\u0026 a[i] \u003e= a[l]) {\n b.push_back({l, i});\n }\n if (r \u003c= n \u0026\u0026 a[i] \u003e= a[r]) {\n b.push_back({i, r});\n }\n }\n sort(all(b), [\u0026](PII x, PII y) {\n if (x.f1 != y.f1)\n return x.f1 \u003c y.f1;\n return x.f2 \u003e y.f2;\n });\n\n if (b.empty()) {\n cout \u003c\u003c \&amp;#34;-1\\n\&amp;#34;;\n return;\n }\n\n int cur_end = 0, len = SZ(b), ans = 0, nx_end = 0;\n int i = 0;\n while (cur_end \u003c n) {\n while (i \u003c len \u0026\u0026 b[i].f1 \u003c= cur_end &amp;#43; 1) {\n ckmax(nx_end, b[i].f2);\n i&amp;#43;&amp;#43;;\n }\n\n if (nx_end == cur_end) {\n cout \u003c\u003c \&amp;#34;-1\\n\&amp;#34;;\n return;\n }\n ans&amp;#43;&amp;#43;;\n cur_end = nx_end;\n }\n if (cur_end == n)\n cout \u003c\u003c ans \u003c\u003c &amp;#39;\\n&amp;#39;;\n else\n cout \u003c\u003c \&amp;#34;-1\\n\&amp;#34;;\n}&amp;#34;"&gt;
&lt;meta itemprop="programmingLanguage" content="cpp"&gt;
&lt;pre tabindex="0" class="chroma"&gt;
&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;void&lt;/span&gt; &lt;span style="color:#6639ba"&gt;solve&lt;/span&gt;&lt;span style="color:#1f2328"&gt;()&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; VI a&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;n &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For1&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; vector&lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt;PII&lt;span style="color:#0550ae"&gt;&amp;gt;&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For1&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; l &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; i &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; r &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; i &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;l &lt;span style="color:#0550ae"&gt;&amp;gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;amp;&amp;amp;&lt;/span&gt; l &lt;span style="color:#0550ae"&gt;&amp;lt;=&lt;/span&gt; n &lt;span style="color:#0550ae"&gt;&amp;amp;&amp;amp;&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;gt;=&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;l&lt;span style="color:#1f2328"&gt;])&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; b&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;push_back&lt;span style="color:#1f2328"&gt;({&lt;/span&gt;l&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; i&lt;span style="color:#1f2328"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;r &lt;span style="color:#0550ae"&gt;&amp;lt;=&lt;/span&gt; n &lt;span style="color:#0550ae"&gt;&amp;amp;&amp;amp;&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;gt;=&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;r&lt;span style="color:#1f2328"&gt;])&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; b&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;push_back&lt;span style="color:#1f2328"&gt;({&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; r&lt;span style="color:#1f2328"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sort&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;all&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;b&lt;span style="color:#1f2328"&gt;),&lt;/span&gt; &lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;](&lt;/span&gt;PII x&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; PII y&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;x&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;f1 &lt;span style="color:#0550ae"&gt;!=&lt;/span&gt; y&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;f1&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;return&lt;/span&gt; x&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;f1 &lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt; y&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;f1&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;return&lt;/span&gt; x&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;f2 &lt;span style="color:#0550ae"&gt;&amp;gt;&lt;/span&gt; y&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;f2&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;b&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;empty&lt;span style="color:#1f2328"&gt;())&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;-1&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;return&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; cur_end &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; len &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; SZ&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;b&lt;span style="color:#1f2328"&gt;),&lt;/span&gt; ans &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; nx_end &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; i &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;while&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;cur_end &lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;while&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i &lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt; len &lt;span style="color:#0550ae"&gt;&amp;amp;&amp;amp;&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;].&lt;/span&gt;f1 &lt;span style="color:#0550ae"&gt;&amp;lt;=&lt;/span&gt; cur_end &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;nx_end&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;].&lt;/span&gt;f2&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; i&lt;span style="color:#0550ae"&gt;++&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;nx_end &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; cur_end&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;-1&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;return&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ans&lt;span style="color:#0550ae"&gt;++&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cur_end &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; nx_end&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;cur_end &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; ans &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;-1&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;h1 id="problem-i-小苯的字符串构造"&gt;Problem I. 小苯的字符串构造&lt;/h1&gt;
&lt;p&gt;题目意思比较难懂。&lt;/p&gt;
&lt;p&gt;其实就是要求长度是奇数的子字符串，出现次数都是奇数。对偶数长度的字符串没有要求。&lt;/p&gt;
&lt;p&gt;模拟几个样例发现，如果 $n$ 是奇数，那么我们可以构造全部是 $a$ 的字符串。这恰好符合要求。如果 $n$ 是偶数，我们只需要添加一个字符 $b$ 即可。&lt;/p&gt;
&lt;h1 id="problem-j-小苯的运算式"&gt;Problem J. 小苯的运算式&lt;/h1&gt;
&lt;p&gt;设状态 $d_{i, 0}$ 表示只考虑前 $i$ 个元素，最后一个数字的符号是负号的最大值。状态 $d_{i, 1}$ 表示只考虑前 $i$ 个元素，最后一个数字的符号是正号的最大值。这是一个线性 DP&lt;/p&gt;
&lt;h1 id="problem-k-小苯的闯关游戏"&gt;Problem K. 小苯的闯关游戏&lt;/h1&gt;
&lt;p&gt;注意到如果初始战力越大，到最后越容易满足条件。也就是有单调的性质，因此我们可以对答案二分。&lt;/p&gt;
&lt;h1 id="problem-l-小苯的序列还原"&gt;Problem L. 小苯的序列还原&lt;/h1&gt;
&lt;p&gt;考虑最后一次操作，我们可以直接确定答案数组的最后一个位置 $b_n$ ，它的位置再也不会发生改变了。&lt;/p&gt;
&lt;p&gt;根据这个想法，我们可以依次确定 $b_{n - 1}, b_{n - 2}, \ldots$&lt;/p&gt;
&lt;p&gt;我们只需要维护当前需要考虑的区间 $[l, r]$ 和当前的翻转次数是奇数还是偶数。&lt;/p&gt;
&lt;h1 id="problem-m-gpa-calculator"&gt;Problem M. GPA Calculator&lt;/h1&gt;
&lt;p&gt;模拟。&lt;/p&gt;</description></item><item><title>牛客2025秋季算法编程训练联赛6-基础组</title><link>https://4hh.github.io/misc/nowcoder-2025-fall-6/</link><pubDate>Thu, 20 Nov 2025 00:03:51 +0800</pubDate><guid>https://4hh.github.io/misc/nowcoder-2025-fall-6/</guid><description>&lt;p&gt;题目🔗 &lt;a href="https://ac.nowcoder.com/acm/contest/120455#question"&gt;牛客2025秋季算法编程训练联赛6-基础组&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="a-签到题"&gt;A. 签到题&lt;/h1&gt;
&lt;p&gt;三条边构成三角形的充分必要条件是：假设 $a \le b \le c$ ，满足 $a + b \lt c$&lt;/p&gt;
&lt;p&gt;题目给出的样例有一点误导性，开始以为需要等腰三角形才可以，其实并不是。&lt;/p&gt;
&lt;p&gt;如果能够组成三角形，那么必定能够构造三个圆外切。设它们的半径分别是 $r_1, r_2, r_3$ , 那么满足 $r_1 + r_2 = a, r_1 + r_3 = b, r_2 + r_3 = c$ ，求解这个三元一次方程组。&lt;/p&gt;
&lt;div data-codeblock itemscope itemtype="https://schema.org/SoftwareSourceCode" &gt;
&lt;button data-codebutton class="codebutton" title="Copy code"&gt;&lt;span&gt;⧉&lt;/span&gt;&lt;/button&gt;
&lt;meta itemprop="codeSampleType" content="snippet"&gt;
&lt;meta data-codetext itemprop="text" content="&amp;#34;void solve() {\n vector\u003cint\u003e a(3);\n For(i, 0, 3) cin \u003e\u003e a[i];\n sort(all(a));\n\n if (a[0] &amp;#43; a[1] \u003e a[2]) {\n vector\u003cdouble\u003e arr(3);\n arr[1] = (1.0 * a[0] &amp;#43; a[1] - a[2]) / 2;\n arr[2] = a[1] - arr[1];\n arr[0] = a[0] - arr[1];\n sort(all(arr));\n cout \u003c\u003c \&amp;#34;Yes\\n\&amp;#34;;\n for (auto i : arr) {\n cout \u003c\u003c fixed \u003c\u003c setprecision(2) \u003c\u003c i \u003c\u003c &amp;#39; &amp;#39;;\n }\n cout \u003c\u003c &amp;#39;\\n&amp;#39;;\n } else {\n cout \u003c\u003c \&amp;#34;wtnl\\n\&amp;#34;;\n }\n}&amp;#34;"&gt;
&lt;meta itemprop="programmingLanguage" content="cpp"&gt;
&lt;pre tabindex="0" class="chroma"&gt;
&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;void&lt;/span&gt; &lt;span style="color:#6639ba"&gt;solve&lt;/span&gt;&lt;span style="color:#1f2328"&gt;()&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; vector&lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#cf222e"&gt;int&lt;/span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;3&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;3&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sort&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;all&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a&lt;span style="color:#1f2328"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;gt;&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;2&lt;/span&gt;&lt;span style="color:#1f2328"&gt;])&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; vector&lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#cf222e"&gt;double&lt;/span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&lt;/span&gt; arr&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;3&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; arr&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;1.0&lt;/span&gt; &lt;span style="color:#0550ae"&gt;*&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;2&lt;/span&gt;&lt;span style="color:#1f2328"&gt;])&lt;/span&gt; &lt;span style="color:#0550ae"&gt;/&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; arr&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;2&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; arr&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; arr&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; arr&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sort&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;all&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;arr&lt;span style="color:#1f2328"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;Yes&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;for&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#cf222e"&gt;auto&lt;/span&gt; &lt;span style="color:#900;font-weight:bold"&gt;i&lt;/span&gt; &lt;span style="color:#1f2328"&gt;:&lt;/span&gt; arr&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; fixed &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; setprecision&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;2&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; i &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39; &amp;#39;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt; &lt;span style="color:#cf222e"&gt;else&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;wtnl&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;h1 id="b-括号序列"&gt;B. 括号序列&lt;/h1&gt;
&lt;p&gt;这道题比 A 简单。&lt;/p&gt;
&lt;p&gt;我们只需要求出不匹配的括号的个数，只有两种情况不匹配：剩余的左括号，不能被匹配掉的右括号。&lt;/p&gt;
&lt;div data-codeblock itemscope itemtype="https://schema.org/SoftwareSourceCode" &gt;
&lt;button data-codebutton class="codebutton" title="Copy code"&gt;&lt;span&gt;⧉&lt;/span&gt;&lt;/button&gt;
&lt;meta itemprop="codeSampleType" content="snippet"&gt;
&lt;meta data-codetext itemprop="text" content="&amp;#34;void solve() {\n int n;\n string s;\n cin \u003e\u003e n \u003e\u003e s;\n\n int ans{}, cur = 0;\n for (auto c : s) {\n if (c == &amp;#39;(&amp;#39;)\n cur&amp;#43;&amp;#43;;\n else {\n if (cur \u003e 0)\n cur--;\n else\n ans&amp;#43;&amp;#43;;\n }\n }\n\n ans &amp;#43;= cur;\n cout \u003c\u003c ans \u003c\u003c &amp;#39;\\n&amp;#39;;\n}&amp;#34;"&gt;
&lt;meta itemprop="programmingLanguage" content="cpp"&gt;
&lt;pre tabindex="0" class="chroma"&gt;
&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;void&lt;/span&gt; &lt;span style="color:#6639ba"&gt;solve&lt;/span&gt;&lt;span style="color:#1f2328"&gt;()&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; string s&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; n &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; s&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; ans&lt;span style="color:#1f2328"&gt;{},&lt;/span&gt; cur &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;for&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#cf222e"&gt;auto&lt;/span&gt; &lt;span style="color:#900;font-weight:bold"&gt;c&lt;/span&gt; &lt;span style="color:#1f2328"&gt;:&lt;/span&gt; s&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;c &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39;(&amp;#39;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cur&lt;span style="color:#0550ae"&gt;++&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;else&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;cur &lt;span style="color:#0550ae"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cur&lt;span style="color:#0550ae"&gt;--&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ans&lt;span style="color:#0550ae"&gt;++&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ans &lt;span style="color:#0550ae"&gt;+=&lt;/span&gt; cur&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; ans &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;h1 id="c-十字阵列"&gt;C. 十字阵列&lt;/h1&gt;
&lt;p&gt;记录第 $i$ 行总的伤害数，记录第 $j$ 列总的伤害数。如果把这两部分加起来，那么位置 $(i, j)$ 的伤害会被计算两次，因此我们需要记录下 $(i, j)$ 最后应该需要减去的伤害数。这样我们就可以得到每个位置最后实际的伤害数。&lt;/p&gt;
&lt;div data-codeblock itemscope itemtype="https://schema.org/SoftwareSourceCode" &gt;
&lt;button data-codebutton class="codebutton" title="Copy code"&gt;&lt;span&gt;⧉&lt;/span&gt;&lt;/button&gt;
&lt;meta itemprop="codeSampleType" content="snippet"&gt;
&lt;meta data-codetext itemprop="text" content="&amp;#34;const int N = 2010;\nll a[N][N], col[N], row[N];\n\nvoid solve() {\n int n, m, h;\n cin \u003e\u003e n \u003e\u003e m \u003e\u003e h;\n\n For1(i, 1, n) {\n row[i] = 0;\n For1(j, 1, m) a[i][j] = 0;\n }\n For1(j, 1, m) col[j] = 0;\n\n For(i, 0, h) {\n int x, y, z;\n cin \u003e\u003e x \u003e\u003e y \u003e\u003e z;\n row[x] &amp;#43;= z;\n col[y] &amp;#43;= z;\n a[x][y] &amp;#43;= z;\n }\n\n ll ans = 0;\n For1(i, 1, n) {\n For1(j, 1, m) {\n ll tmp = row[i] &amp;#43; col[j] - a[i][j];\n ans = (ans &amp;#43; (tmp * (i &amp;#43; j) % MOD)) % MOD;\n }\n }\n cout \u003c\u003c ans \u003c\u003c &amp;#39;\\n&amp;#39;;\n}&amp;#34;"&gt;
&lt;meta itemprop="programmingLanguage" content="cpp"&gt;
&lt;pre tabindex="0" class="chroma"&gt;
&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;const&lt;/span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; N &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2010&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ll a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;N&lt;span style="color:#1f2328"&gt;][&lt;/span&gt;N&lt;span style="color:#1f2328"&gt;],&lt;/span&gt; col&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;N&lt;span style="color:#1f2328"&gt;],&lt;/span&gt; row&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;N&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;void&lt;/span&gt; &lt;span style="color:#6639ba"&gt;solve&lt;/span&gt;&lt;span style="color:#1f2328"&gt;()&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; m&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; h&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; n &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; m &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; h&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For1&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; row&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For1&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;j&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; m&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;][&lt;/span&gt;j&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For1&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;j&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; m&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; col&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;j&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; h&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; x&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; y&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; z&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; x &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; y &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; z&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; row&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;x&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;+=&lt;/span&gt; z&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; col&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;y&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;+=&lt;/span&gt; z&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;x&lt;span style="color:#1f2328"&gt;][&lt;/span&gt;y&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;+=&lt;/span&gt; z&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ll ans &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For1&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For1&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;j&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; m&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ll tmp &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; row&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; col&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;j&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;][&lt;/span&gt;j&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ans &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;ans &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;tmp &lt;span style="color:#0550ae"&gt;*&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; j&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#0550ae"&gt;%&lt;/span&gt; MOD&lt;span style="color:#1f2328"&gt;))&lt;/span&gt; &lt;span style="color:#0550ae"&gt;%&lt;/span&gt; MOD&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; ans &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;h1 id="d-配对"&gt;D. 配对&lt;/h1&gt;
&lt;p&gt;容易想到我们可以对答案进行二分，设最终的答案是 $sum$ ，我们需要保证两个数组中，我们可以构造出数对和 $\ge sum$ 的数对的数量 $\ge k$ 。此时最大 $sum$ 就是所求。&lt;/p&gt;
&lt;p&gt;接下来考虑对于给定的 $sum$ ，如何找到这样的数对的数量，使得每个数对的和都 $\ge sum$ 。这恰好是一个双指针经典问题：把数组 $A$ 从小到大排序，数组 $B$ 从大到小排序。如果 $A_i + B_j \ge sum$ ，那么我们找到合法的一对，此时 $i++, j++$ 。如果 $A_i + B_j \lt sum$ ，此时 $i++$ 。&lt;/p&gt;
&lt;div data-codeblock itemscope itemtype="https://schema.org/SoftwareSourceCode" &gt;
&lt;button data-codebutton class="codebutton" title="Copy code"&gt;&lt;span&gt;⧉&lt;/span&gt;&lt;/button&gt;
&lt;meta itemprop="codeSampleType" content="snippet"&gt;
&lt;meta data-codetext itemprop="text" content="&amp;#34;void solve() {\n int n, k;\n cin \u003e\u003e n \u003e\u003e k;\n\n VI a(n), b(n);\n For(i, 0, n) cin \u003e\u003e a[i];\n For(i, 0, n) cin \u003e\u003e b[i];\n sort(all(a));\n sort(all(b), greater\u003cint\u003e());\n\n auto check = [\u0026](ll sum) -\u003e bool {\n ll res = 0;\n for (int i = 0, j = 0; i \u003c n \u0026\u0026 j \u003c n;) {\n if ((ll)a[i] &amp;#43; b[j] \u003e= sum) {\n res&amp;#43;&amp;#43;;\n i&amp;#43;&amp;#43;;\n j&amp;#43;&amp;#43;;\n } else {\n i&amp;#43;&amp;#43;;\n }\n }\n return res \u003e= k;\n };\n\n ll l = 1, r = 2e8 &amp;#43; 10, mid;\n while (l \u003c r) {\n mid = (l &amp;#43; r &amp;#43; 1) / 2;\n if (check(mid))\n l = mid;\n else\n r = mid - 1;\n }\n\n cout \u003c\u003c l \u003c\u003c &amp;#39;\\n&amp;#39;;\n}&amp;#34;"&gt;
&lt;meta itemprop="programmingLanguage" content="cpp"&gt;
&lt;pre tabindex="0" class="chroma"&gt;
&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;void&lt;/span&gt; &lt;span style="color:#6639ba"&gt;solve&lt;/span&gt;&lt;span style="color:#1f2328"&gt;()&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; k&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; n &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; k&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; VI a&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;n&lt;span style="color:#1f2328"&gt;),&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;n&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sort&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;all&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a&lt;span style="color:#1f2328"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sort&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;all&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;b&lt;span style="color:#1f2328"&gt;),&lt;/span&gt; greater&lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#cf222e"&gt;int&lt;/span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;());&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;auto&lt;/span&gt; check &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#1f2328"&gt;[&lt;/span&gt;&lt;span style="color:#0550ae"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;](&lt;/span&gt;ll sum&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#0550ae"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color:#cf222e"&gt;bool&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ll res &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;for&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#cf222e"&gt;int&lt;/span&gt; i &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; j &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt; i &lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt; n &lt;span style="color:#0550ae"&gt;&amp;amp;&amp;amp;&lt;/span&gt; j &lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;((&lt;/span&gt;ll&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;j&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;gt;=&lt;/span&gt; sum&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; res&lt;span style="color:#0550ae"&gt;++&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; i&lt;span style="color:#0550ae"&gt;++&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; j&lt;span style="color:#0550ae"&gt;++&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt; &lt;span style="color:#cf222e"&gt;else&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; i&lt;span style="color:#0550ae"&gt;++&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;return&lt;/span&gt; res &lt;span style="color:#0550ae"&gt;&amp;gt;=&lt;/span&gt; k&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ll l &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; r &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2e8&lt;/span&gt; &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; &lt;span style="color:#0550ae"&gt;10&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; mid&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;while&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;l &lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt; r&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mid &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;l &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; r &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#0550ae"&gt;/&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;check&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;mid&lt;span style="color:#1f2328"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; l &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; mid&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; r &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; mid &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; l &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;h1 id="e-重排列"&gt;E. 重排列&lt;/h1&gt;
&lt;p&gt;容易发现，对两个数组排序，不会影响答案。&lt;/p&gt;
&lt;p&gt;如果排序之后，还是不能够满足条件，那么无解。&lt;/p&gt;
&lt;p&gt;如果有解，我们可以求出方案数。对于 $B_i$ ，我们可以求出 $A_j \le B_i$ 的最大的 $j$ ，也就是说 $A[1..j]$ 中的所有数字都可以放在 $B_i$ 的位置。因为 $B$ 已经排好序了，我们还需要考虑到 $B[1..i-1]$ 它们已经占用的位置，因此 $B_i$ 对应的方案数是 $j - (i - 1)$ ，根据乘法原理，把所有的 $B_i$ 对应的方案数相乘就是答案。&lt;/p&gt;
&lt;div data-codeblock itemscope itemtype="https://schema.org/SoftwareSourceCode" &gt;
&lt;button data-codebutton class="codebutton" title="Copy code"&gt;&lt;span&gt;⧉&lt;/span&gt;&lt;/button&gt;
&lt;meta itemprop="codeSampleType" content="snippet"&gt;
&lt;meta data-codetext itemprop="text" content="&amp;#34;void solve() {\n int n;\n cin \u003e\u003e n;\n\n VI a(n), b(n);\n For(i, 0, n) cin \u003e\u003e a[i];\n For(i, 0, n) cin \u003e\u003e b[i];\n sort(all(a));\n sort(all(b));\n\n ll ans = 0;\n int cnt = 0;\n For(i, 0, n) {\n if (a[i] \u003e b[i]) {\n cout \u003c\u003c \&amp;#34;0\\n\&amp;#34;;\n return;\n }\n }\n\n ans = 1;\n for (int i = 0, j = 0; j \u003c n; j&amp;#43;&amp;#43;) {\n while (i \u003c n \u0026\u0026 a[i] \u003c= b[j])\n i&amp;#43;&amp;#43;;\n ans = ans * (i - cnt) % MOD;\n cnt&amp;#43;&amp;#43;;\n }\n cout \u003c\u003c ans \u003c\u003c &amp;#39;\\n&amp;#39;;\n}&amp;#34;"&gt;
&lt;meta itemprop="programmingLanguage" content="cpp"&gt;
&lt;pre tabindex="0" class="chroma"&gt;
&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;void&lt;/span&gt; &lt;span style="color:#6639ba"&gt;solve&lt;/span&gt;&lt;span style="color:#1f2328"&gt;()&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; VI a&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;n&lt;span style="color:#1f2328"&gt;),&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;n&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sort&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;all&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a&lt;span style="color:#1f2328"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sort&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;all&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;b&lt;span style="color:#1f2328"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ll ans &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; cnt &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;gt;&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;])&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;0&lt;/span&gt;&lt;span style="color:#0a3069"&gt;\n&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;return&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ans &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;for&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#cf222e"&gt;int&lt;/span&gt; i &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; j &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt; j &lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;;&lt;/span&gt; j&lt;span style="color:#0550ae"&gt;++&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;while&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i &lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt; n &lt;span style="color:#0550ae"&gt;&amp;amp;&amp;amp;&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;lt;=&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;j&lt;span style="color:#1f2328"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; i&lt;span style="color:#0550ae"&gt;++&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ans &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; ans &lt;span style="color:#0550ae"&gt;*&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; cnt&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#0550ae"&gt;%&lt;/span&gt; MOD&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cnt&lt;span style="color:#0550ae"&gt;++&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; ans &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;h1 id="f-图"&gt;F. 图&lt;/h1&gt;
&lt;p&gt;很有意思的一道题目。&lt;/p&gt;
&lt;p&gt;简单路径的含义是，路径上不经过重复的点。&lt;/p&gt;
&lt;p&gt;因为题目条件中要求每个点仅有一条出边，所以这个图其实并不复杂。可能存在环，如果存在环也没有问题，我们可以把环切断作为路径的一部分。&lt;/p&gt;
&lt;p&gt;画图可以发现，分成一下几种情况：&lt;/p&gt;
&lt;p&gt;最简单的是一条链的情况。&lt;/p&gt;
&lt;p&gt;如果存在环，那么就不能“逃”出去了，每个点的入度都恰好是 1.&lt;/p&gt;
&lt;p&gt;一条链或者多条链最多可以连接到一个环中。&lt;/p&gt;
&lt;p&gt;也就是最终的答案构成一定是：一条链+可选的一个环。&lt;/p&gt;
&lt;p&gt;我们可以通过拓扑排序，得到所有的环，同时得到所有链上每个点的深度（也就是以当前点做为终点的最长链的长度）。&lt;/p&gt;
&lt;p&gt;然后对每个环进行一次 DFS，求出环的大小。用环大小加上链长度维护答案。&lt;/p&gt;
&lt;div data-codeblock itemscope itemtype="https://schema.org/SoftwareSourceCode" &gt;
&lt;button data-codebutton class="codebutton" title="Copy code"&gt;&lt;span&gt;⧉&lt;/span&gt;&lt;/button&gt;
&lt;meta itemprop="codeSampleType" content="snippet"&gt;
&lt;meta data-codetext itemprop="text" content="&amp;#34;const int N = 1000100;\nint n, g[N], deg[N], dep[N];\nbool st[N];\n\nvoid Init() {\n For1(i, 1, n) {\n deg[i] = 0;\n g[i] = -1;\n st[i] = false;\n dep[i] = 1;\n }\n}\n\nint dfs(int u, int \u0026mx) {\n st[u] = true;\n ckmax(mx, dep[u]);\n\n int res = 1, v = g[u];\n if (!st[v]) {\n res &amp;#43;= dfs(v, mx);\n }\n return res;\n}\n\nvoid solve() {\n cin \u003e\u003e n;\n Init();\n For1(i, 1, n) {\n int x;\n cin \u003e\u003e x;\n g[i] = x;\n deg[x]&amp;#43;&amp;#43;;\n }\n\n queue\u003cint\u003e q;\n For1(i, 1, n) {\n if (deg[i] == 0) {\n q.push(i);\n }\n }\n\n while (!q.empty()) {\n auto t = q.front();\n st[t] = true;\n q.pop();\n int v = g[t];\n ckmax(dep[v], dep[t] &amp;#43; 1);\n deg[v]--;\n if (deg[v] == 0) {\n q.push(v);\n }\n }\n\n int ans = 0;\n For1(i, 1, n) {\n if (!st[i]) {\n int cur_dep = 0;\n int sz = dfs(i, cur_dep), tmp = sz &amp;#43; cur_dep;\n ckmax(ans, tmp - 1);\n }\n }\n cout \u003c\u003c ans \u003c\u003c &amp;#39;\\n&amp;#39;;\n}&amp;#34;"&gt;
&lt;meta itemprop="programmingLanguage" content="cpp"&gt;
&lt;pre tabindex="0" class="chroma"&gt;
&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;const&lt;/span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; N &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1000100&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;int&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; g&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;N&lt;span style="color:#1f2328"&gt;],&lt;/span&gt; deg&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;N&lt;span style="color:#1f2328"&gt;],&lt;/span&gt; dep&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;N&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;bool&lt;/span&gt; st&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;N&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;void&lt;/span&gt; &lt;span style="color:#6639ba"&gt;Init&lt;/span&gt;&lt;span style="color:#1f2328"&gt;()&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For1&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; deg&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; g&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;-&lt;/span&gt;&lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; st&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#6639ba"&gt;false&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dep&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;int&lt;/span&gt; &lt;span style="color:#6639ba"&gt;dfs&lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#cf222e"&gt;int&lt;/span&gt; u&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;amp;&lt;/span&gt;mx&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; st&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;u&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#6639ba"&gt;true&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;mx&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; dep&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;u&lt;span style="color:#1f2328"&gt;]);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; res &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; v &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; g&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;u&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;!&lt;/span&gt;st&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;v&lt;span style="color:#1f2328"&gt;])&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; res &lt;span style="color:#0550ae"&gt;+=&lt;/span&gt; dfs&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;v&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; mx&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;return&lt;/span&gt; res&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;void&lt;/span&gt; &lt;span style="color:#6639ba"&gt;solve&lt;/span&gt;&lt;span style="color:#1f2328"&gt;()&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Init&lt;span style="color:#1f2328"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For1&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; x&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; x&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; g&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; x&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; deg&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;x&lt;span style="color:#1f2328"&gt;]&lt;/span&gt;&lt;span style="color:#0550ae"&gt;++&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; queue&lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#cf222e"&gt;int&lt;/span&gt;&lt;span style="color:#0550ae"&gt;&amp;gt;&lt;/span&gt; q&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For1&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;deg&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; q&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;push&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;while&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;!&lt;/span&gt;q&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;empty&lt;span style="color:#1f2328"&gt;())&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;auto&lt;/span&gt; t &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; q&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;front&lt;span style="color:#1f2328"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; st&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;t&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#6639ba"&gt;true&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; q&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;pop&lt;span style="color:#1f2328"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; v &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; g&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;t&lt;span style="color:#1f2328"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;dep&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;v&lt;span style="color:#1f2328"&gt;],&lt;/span&gt; dep&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;t&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; deg&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;v&lt;span style="color:#1f2328"&gt;]&lt;/span&gt;&lt;span style="color:#0550ae"&gt;--&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;deg&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;v&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;==&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; q&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;push&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;v&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; ans &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; For1&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;!&lt;/span&gt;st&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;])&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; cur_dep &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;0&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; sz &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; dfs&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; cur_dep&lt;span style="color:#1f2328"&gt;),&lt;/span&gt; tmp &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; sz &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; cur_dep&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;ans&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; tmp &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1&lt;/span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; ans &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;</description></item></channel></rss>