<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Codeforces Rounds on 练习本</title><link>https://4hh.github.io/codeforces/</link><description>Recent content in Codeforces Rounds 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>Sat, 15 Nov 2025 14:30:33 +0800</lastBuildDate><atom:link href="https://4hh.github.io/codeforces/index.xml" rel="self" type="application/rss+xml"/><item><title>Codeforces Round 1044 (Div. 2) ABCD</title><link>https://4hh.github.io/codeforces/codeforces-round-1044/</link><pubDate>Tue, 18 Nov 2025 16:22:35 +0800</pubDate><guid>https://4hh.github.io/codeforces/codeforces-round-1044/</guid><description>&lt;p&gt;题目🔗 &lt;a href="https://codeforces.com/contest/2133"&gt;Codeforces Round 1044 (Div. 2)&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="a-redstone"&gt;A. Redstone?&lt;/h1&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 cin \u003e\u003e n;\n\n vector\u003cint\u003e a(n &amp;#43; 1), vis(120);\n bool ok = false;\n For1(i, 1, n) {\n cin \u003e\u003e a[i];\n if (vis[a[i]]) {\n ok = true;\n }\n vis[a[i]] = true;\n }\n if (ok)\n YES();\n else\n NO();\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; 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;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; vis&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;120&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;bool&lt;/span&gt; ok &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; 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; 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 style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;vis&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:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ok &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; &lt;span style="color:#1f2328"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; vis&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; &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; &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;ok&lt;span style="color:#1f2328"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; YES&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; NO&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-villagers"&gt;B. Villagers&lt;/h1&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 cin \u003e\u003e n;\n\n vector\u003cint\u003e a(n &amp;#43; 1);\n for (int i = 1; i \u003c= n; i&amp;#43;&amp;#43;) {\n cin \u003e\u003e a[i];\n }\n sort(a.begin() &amp;#43; 1, a.begin() &amp;#43; 1 &amp;#43; n);\n ll ans{};\n for (int i = n; i \u003e= 1; i -= 2) {\n ans &amp;#43;= a[i];\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; 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;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; &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;1&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:#1f2328"&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 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; 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 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;a&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;begin&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; a&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;begin&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:#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; ll ans&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; n&lt;span style="color:#1f2328"&gt;;&lt;/span&gt; i &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:#1f2328"&gt;;&lt;/span&gt; i &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 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:#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; 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-the-nether"&gt;C. The Nether&lt;/h1&gt;
&lt;p&gt;以每个节点作为起点询问，容易找到最大路径的长度 $len$&lt;/p&gt;
&lt;p&gt;考虑如何找到路径的第二个节点，设这个节点是 $p$ ，那么以 $p$ 开头的最长路径必然是 $len - 1$ , 并且以 $start$ 作为起点， $p$ 作为终点，路径长度需要恰好是 2.&lt;/p&gt;
&lt;p&gt;在第一遍询问的过程中，我们可以记录每个长度对应的点的列表。我们就可以容易找到 $len - 1$ 对应的点，然后以 $start$ 为起点， $p$ 作为另外一个点询问，找答案恰好是 2 的元素。依此类推，可以找到所有的 $len$ 个点。&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 cin \u003e\u003e n;\n\n auto query = [\u0026](int start) -\u003e int {\n cout \u003c\u003c \&amp;#34;? \&amp;#34; \u003c\u003c start \u003c\u003c \&amp;#34; \&amp;#34; \u003c\u003c n;\n for (int i = 1; i \u003c= n; i&amp;#43;&amp;#43;) {\n cout \u003c\u003c \&amp;#34; \&amp;#34; \u003c\u003c i;\n }\n cout \u003c\u003c endl;\n\n int len;\n cin \u003e\u003e len;\n return len;\n };\n auto query2 = [\u0026](int p1, int p2) -\u003e bool {\n cout \u003c\u003c \&amp;#34;? \&amp;#34; \u003c\u003c p1 \u003c\u003c \&amp;#34; 2 \&amp;#34; \u003c\u003c p1 \u003c\u003c &amp;#39; &amp;#39; \u003c\u003c p2 \u003c\u003c endl;\n int len;\n cin \u003e\u003e len;\n return len == 2;\n };\n\n map\u003cint, vector\u003cint\u003e\u003e mp;\n int mx = 0;\n for (int i = 1; i \u003c= n; i&amp;#43;&amp;#43;) {\n int len = query(i);\n mp[len].push_back(i);\n ckmax(mx, len);\n }\n\n vector\u003cint\u003e ans;\n int p1 = mp[mx][0], len = mx;\n ans.push_back(p1);\n for (int i = len - 1; i \u003e= 1; i--) {\n for (auto v : mp[i]) {\n if (query2(p1, v)) {\n ans.push_back(v);\n p1 = v;\n break;\n }\n }\n }\n\n cout \u003c\u003c \&amp;#34;! \&amp;#34; \u003c\u003c mx;\n for (auto i : ans) {\n cout \u003c\u003c \&amp;#34; \&amp;#34; \u003c\u003c i;\n }\n cout \u003c\u003c endl;\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; &lt;span style="color:#cf222e"&gt;auto&lt;/span&gt; query &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;&lt;span style="color:#cf222e"&gt;int&lt;/span&gt; start&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;int&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;? &amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; start &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&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;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;1&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:#1f2328"&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 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; &amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&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; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl&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; len&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; len&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; len&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;auto&lt;/span&gt; query2 &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;&lt;span style="color:#cf222e"&gt;int&lt;/span&gt; p1&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; p2&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; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;? &amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; p1 &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34; 2 &amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; p1 &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:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; p2 &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl&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; len&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; len&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; len &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:#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; map&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:#1f2328"&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;&amp;gt;&lt;/span&gt; mp&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; mx &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;1&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:#1f2328"&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 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; len &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; query&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; mp&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;len&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;
&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; len&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; 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; ans&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; p1 &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; mp&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;mx&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; len &lt;span style="color:#0550ae"&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; ans&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;push_back&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;p1&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; len &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; i &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:#1f2328"&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 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;v&lt;/span&gt; &lt;span style="color:#1f2328"&gt;:&lt;/span&gt; mp&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;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;query2&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;p1&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; ans&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;push_back&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; p1 &lt;span style="color:#0550ae"&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:#cf222e"&gt;break&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:#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; &lt;span style="color:#0a3069"&gt;&amp;#34;! &amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&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:#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; ans&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; &amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&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; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl&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-chicken-jockey"&gt;D. Chicken Jockey&lt;/h1&gt;
&lt;p&gt;有趣的 DP 题&lt;/p&gt;
&lt;p&gt;注意到我们需要造成的伤害总量是固定的，总伤害分为两个部分：坠落伤害和普攻伤害。我们需要最大化坠落伤害，最小化普攻伤害。&lt;/p&gt;
&lt;p&gt;设 $d_i$ 代表，消灭前 $i$ 个元素，需要的普攻伤害的最小值。&lt;/p&gt;
&lt;p&gt;对于位置 $i$ ，如果要对它造成坠落伤害，我们需要考虑前 $i - 1$ 个位置。直接对 $i$ 造成坠落伤害的时刻，一定是 $i - 1$ 消失的时刻。&lt;/p&gt;
&lt;p&gt;最简单的情况是，直接杀掉 $i - 1$ ，此时状态转移是 $d_{i - 2} + a_{i - 1} + max(0, a_i - (i - 1))$&lt;/p&gt;
&lt;p&gt;另外一种情况是，不直接杀掉 $i - 1$ , 总之我们需要让前 $i - 1$ 给被消灭，此时只剩下第 $i - 1$ 个元素，第 $i$ 个元素的坠落伤害只有 1. 而消灭前 $i - 1$ 个元素的最小代价，恰好是我们的状态定义，这是一个子问题，因此状态转移是 $d_i = d_{i - 1} + (a_i - 1)$&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 for (int i = 1; i \u003c= n; i&amp;#43;&amp;#43;)\n cin \u003e\u003e a[i];\n\n VL d(n &amp;#43; 1, INFL);\n d[0] = 0;\n d[1] = a[1];\n\n For1(i, 2, n) {\n d[i] = d[i - 1] &amp;#43; a[i] - 1;\n ckmin(d[i], d[i - 2] &amp;#43; a[i - 1] &amp;#43; max(0, a[i] - (i - 1)));\n }\n\n cout \u003c\u003c d[n] \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:#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;1&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:#1f2328"&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; 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; VL d&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; INFL&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; d&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; &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; d&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;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&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; d&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; d&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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; 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; ckmin&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;d&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;],&lt;/span&gt; d&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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 style="color:#0550ae"&gt;+&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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; max&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; 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:#1f2328"&gt;(&lt;/span&gt;i &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; d&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;n&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &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><item><title>Codeforces Round 1045 (Div. 2) ABC</title><link>https://4hh.github.io/codeforces/codeforces-round-1045/</link><pubDate>Mon, 17 Nov 2025 21:02:23 +0800</pubDate><guid>https://4hh.github.io/codeforces/codeforces-round-1045/</guid><description>&lt;p&gt;比赛🔗 &lt;a href="https://codeforces.com/contest/2134"&gt;Codeforces Round 1045 (Div. 2)&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="a-painting-with-two-colors"&gt;A. Painting With Two Colors&lt;/h1&gt;
&lt;p&gt;容易想到根据奇偶性进行讨论。特殊情况是，如果 $b &amp;gt; a$ ，那么 $a$ 的奇偶性不需要考虑，因为它会被 $b$ 覆盖。&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, a, b;\n cin \u003e\u003e n \u003e\u003e a \u003e\u003e b;\n\n if (n \u0026 1) {\n if ((b \u0026 1) \u0026\u0026 ((a \u0026 1) || (a \u003c b)))\n YES();\n else\n NO();\n } else {\n if ((b % 2 == 0) \u0026\u0026 (a % 2 == 0 || (a \u003c b)))\n YES();\n else\n NO();\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; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; n&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; a&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; 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; a &lt;span style="color:#0550ae"&gt;&amp;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;
&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;n &lt;span style="color:#0550ae"&gt;&amp;amp;&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; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;((&lt;/span&gt;b &lt;span style="color:#0550ae"&gt;&amp;amp;&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;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#1f2328"&gt;((&lt;/span&gt;a &lt;span style="color:#0550ae"&gt;&amp;amp;&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;a &lt;span style="color:#0550ae"&gt;&amp;lt;&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; YES&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; NO&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; &lt;span style="color:#cf222e"&gt;if&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;2&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:#0550ae"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a &lt;span style="color:#0550ae"&gt;%&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2&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:#0550ae"&gt;||&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a &lt;span style="color:#0550ae"&gt;&amp;lt;&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; YES&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; NO&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-add-0-or-k"&gt;B. Add 0 or K&lt;/h1&gt;
&lt;p&gt;神奇的构造题。&lt;/p&gt;
&lt;p&gt;我们要让 $a_i + kc_i \equiv 0 \pmod {g}$ ，也就是 $k c_i \equiv -a_i \pmod g$&lt;/p&gt;
&lt;p&gt;要让这个方程比较好处理，我们可以让 $k \equiv -1 \pmod {g}$ ，带入上式得到 $c_i \equiv a_i \pmod {g}$ 。此时有 $k + 1 \equiv 0 \pmod {g}$ ，我们可以直接取 $g = k + 1$&lt;/p&gt;
&lt;p&gt;因此可以这么构造，取 $g = k + 1$ , $c_i = a_i \bmod g$ ， $b_i = a_i + k c_i$ 。数组 $b$ 就是答案。&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 VL a(n &amp;#43; 1);\n For1(i, 1, n) cin \u003e\u003e a[i];\n\n int g = k &amp;#43; 1;\n VL c(n &amp;#43; 1);\n For1(i, 1, n) {\n c[i] = a[i] % g;\n a[i] &amp;#43;= k * c[i];\n cout \u003c\u003c a[i] \u003c\u003c &amp;#39; &amp;#39;;\n }\n cout \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; VL 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; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; g &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; k &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; VL c&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; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; c&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; 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; g&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;i&lt;span style="color:#1f2328"&gt;]&lt;/span&gt; &lt;span style="color:#0550ae"&gt;+=&lt;/span&gt; k &lt;span style="color:#0550ae"&gt;*&lt;/span&gt; c&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; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&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;&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&gt;&lt;/span&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;h1 id="c-even-larger"&gt;C. Even Larger&lt;/h1&gt;
&lt;p&gt;这道题目比 B 题简单多了。&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 cin \u003e\u003e n;\n\n VI a(n &amp;#43; 10);\n For1(i, 1, n) { cin \u003e\u003e a[i]; }\n\n ll ans{};\n for (int i = 2; i \u003c= n; i &amp;#43;= 2) {\n int sum = a[i - 1] &amp;#43; a[i &amp;#43; 1];\n if (a[i] \u003e= sum)\n continue;\n int g = sum - a[i];\n ans &amp;#43;= g;\n a[i &amp;#43; 1] -= min(g, a[i &amp;#43; 1]);\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:#0550ae"&gt;+&lt;/span&gt; &lt;span style="color:#0550ae"&gt;10&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; 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 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:#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;2&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:#1f2328"&gt;;&lt;/span&gt; i &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 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; sum &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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;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; sum&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;continue&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; g &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; sum &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&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ans &lt;span style="color:#0550ae"&gt;+=&lt;/span&gt; g&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;i &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; min&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;g&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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; 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><item><title>Codeforces Round 1046 (Div. 2) ABCD</title><link>https://4hh.github.io/codeforces/codeforces-round-1046/</link><pubDate>Mon, 17 Nov 2025 15:16:28 +0800</pubDate><guid>https://4hh.github.io/codeforces/codeforces-round-1046/</guid><description>&lt;p&gt;比赛🔗 &lt;a href="https://codeforces.com/contest/2136"&gt;Codeforces Round 1046 (Div. 2)&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="a-in-the-dream"&gt;A. In the Dream&lt;/h1&gt;
&lt;p&gt;在一个半场中，最坏情况下胜负情况是 $AABAABAA$ 这种形式。设分数较小的是 $x$ ，那么另外一个人的得分满足 $y \le 2x + 2$&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 a, b, c, d;\n\n cin \u003e\u003e a \u003e\u003e b \u003e\u003e c \u003e\u003e d;\n\n auto check = [\u0026](int a, int b) -\u003e bool {\n if (a \u003e b)\n swap(a, b);\n return 2 * a &amp;#43; 2 \u003e= b;\n };\n\n if (check(a, b) \u0026\u0026 check(c - a, d - b))\n YES();\n else\n NO();\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; a&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; c&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; d&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; cin &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; a &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; b &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; c &lt;span style="color:#0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; d&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;&lt;span style="color:#cf222e"&gt;int&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; b&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; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a &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; swap&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a&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 style="color:#cf222e"&gt;return&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2&lt;/span&gt; &lt;span style="color:#0550ae"&gt;*&lt;/span&gt; a &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2&lt;/span&gt; &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; &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;check&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;amp;&amp;amp;&lt;/span&gt; check&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;c &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; d &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; YES&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; NO&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-like-the-bitset"&gt;B. Like the Bitset&lt;/h1&gt;
&lt;p&gt;要求不能有连续的 $k$ 个 1. 构造的时候，先填 0 的位置，尽可能填比较大的数字，剩下的数字填在 1 的位置。&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 string s;\n cin \u003e\u003e s;\n s = \&amp;#34; \&amp;#34; &amp;#43; s;\n\n int cur = 0, cnt = 0;\n bool ok = true;\n VI zeros, ones;\n\n For1(i, 1, n) {\n if (s[i] == &amp;#39;1&amp;#39;) {\n cur&amp;#43;&amp;#43;;\n ones.pb(i);\n } else {\n cur = 0;\n zeros.pb(i);\n }\n\n ckmax(cnt, cur);\n if (cnt \u003e= k) {\n ok = false;\n break;\n }\n }\n\n if (!ok) {\n NO();\n return;\n }\n\n int idx = n;\n VI ans(n &amp;#43; 1);\n for (auto x : zeros) {\n ans[x] = idx--;\n }\n for (auto x : ones) {\n ans[x] = idx--;\n }\n YES();\n For1(i, 1, n) { cout \u003c\u003c ans[i] \u003c\u003c &amp;#39; &amp;#39;; }\n cout \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; 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; 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; s &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&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; 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; 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; &lt;span style="color:#cf222e"&gt;bool&lt;/span&gt; ok &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; VI zeros&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; ones&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; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;s&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:#0a3069"&gt;&amp;#39;1&amp;#39;&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; 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; ones&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;pb&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 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; 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; zeros&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;pb&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&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;cnt&lt;span style="color:#1f2328"&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; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;cnt &lt;span style="color:#0550ae"&gt;&amp;gt;=&lt;/span&gt; k&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; ok &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; &lt;span style="color:#cf222e"&gt;break&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;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0550ae"&gt;!&lt;/span&gt;ok&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; NO&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; idx &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; VI ans&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; &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;x&lt;/span&gt; &lt;span style="color:#1f2328"&gt;:&lt;/span&gt; zeros&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; ans&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; idx&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:#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;x&lt;/span&gt; &lt;span style="color:#1f2328"&gt;:&lt;/span&gt; ones&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; ans&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; idx&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; YES&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; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; ans&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;&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 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&gt;&lt;/span&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;h1 id="c-against-the-difference"&gt;C. Against the Difference&lt;/h1&gt;
&lt;p&gt;设状态 $d_i$ 表示前 $i$ 个位置，最长合法子序列的长度。我们记录每个数字的位置到数组 $b$ 中， $b[x]$ 是 $x$ 出现过的位置的数组。对于位置 $i$ ，如果 $b_{a_i}$ 的长度不小于 $a_i$ ，那么状态转移到 $d_{pre - 1}$ 其中 $pre = b[x][len - a_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 &amp;#43; 1);\n For1(i, 1, n) cin \u003e\u003e a[i];\n\n VI d(n &amp;#43; 1);\n VVI b(n &amp;#43; 1);\n int ans = 0;\n\n For1(i, 1, n) {\n int x = a[i];\n b[x].pb(i);\n\n int len = SZ(b[x]);\n if (len \u003e= x) {\n int pre = b[x][len - x];\n ckmax(d[i], d[pre - 1] &amp;#43; x);\n }\n\n ckmax(d[i], d[i - 1]);\n ckmax(ans, d[i]);\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;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; VI d&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; VVI b&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; &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;
&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:#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&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; b&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;x&lt;span style="color:#1f2328"&gt;].&lt;/span&gt;pb&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; &lt;span style="color:#cf222e"&gt;int&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;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; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;len &lt;span style="color:#0550ae"&gt;&amp;gt;=&lt;/span&gt; x&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; pre &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; b&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;x&lt;span style="color:#1f2328"&gt;][&lt;/span&gt;len &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; ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;d&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;],&lt;/span&gt; d&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;pre &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; 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; &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; ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;d&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i&lt;span style="color:#1f2328"&gt;],&lt;/span&gt; d&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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; ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;ans&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; d&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&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-for-the-champion"&gt;D. For the Champion&lt;/h1&gt;
&lt;p&gt;给定的式子 $min(|x_i - c| + |y_i - d|)$ 中的绝对值不好处理。考虑如何去掉绝对值。&lt;/p&gt;
&lt;p&gt;从起始位置移动到右下角到 $c_1 = c + 2U, d_1 = d - 2U$ , 其中 $U = 10^9$ . 这样可以保证 $(c_1, d_1)$ 一定在所有点的右下方。&lt;/p&gt;
&lt;p&gt;同理，从起始位置移动到右上角 $c_2 = c + 2U, d_2 = d + 2U$ , 其中 $U = 10^9$ . 这样可以保证 $(c_2, d_2)$ 一定在所有点的右上方。&lt;/p&gt;
&lt;p&gt;然后可以根据对 $(c_1, d_1)$ 和 $(c_2, d_2)$ 的询问，得到不带绝对值的式子对应的答案。得到二元一次方程组。&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 vector\u003cPII\u003e a(n &amp;#43; 1);\n int sub = 2e9 &amp;#43; 10, add = -2e9 - 10;\n\n For1(i, 1, n) {\n cin \u003e\u003e a[i].first \u003e\u003e a[i].second;\n ckmin(sub, a[i].second - a[i].first);\n ckmax(add, a[i].first &amp;#43; a[i].second);\n }\n\n auto query = [\u0026](char ch, int k) -\u003e ll {\n cout \u003c\u003c \&amp;#34;? \&amp;#34; \u003c\u003c ch \u003c\u003c &amp;#39; &amp;#39; \u003c\u003c k \u003c\u003c endl;\n ll dis;\n cin \u003e\u003e dis;\n return dis;\n };\n\n int U = 1e9;\n query(&amp;#39;R&amp;#39;, U);\n query(&amp;#39;R&amp;#39;, U);\n query(&amp;#39;D&amp;#39;, U);\n ll val1 = query(&amp;#39;D&amp;#39;, U);\n\n query(&amp;#39;U&amp;#39;, U);\n query(&amp;#39;U&amp;#39;, U);\n query(&amp;#39;U&amp;#39;, U);\n ll val2 = query(&amp;#39;U&amp;#39;, U);\n\n ll t = 1LL * val2 &amp;#43; add - 4LL * U, s = 1LL * val1 - sub - 4LL * U;\n ll x = (t &amp;#43; s) / 2, y = t - x;\n cout \u003c\u003c \&amp;#34;! \&amp;#34; \u003c\u003c x \u003c\u003c &amp;#39; &amp;#39; \u003c\u003c y \u003c\u003c endl;\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; vector&lt;span style="color:#0550ae"&gt;&amp;lt;&lt;/span&gt;PII&lt;span style="color:#0550ae"&gt;&amp;gt;&lt;/span&gt; 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; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; sub &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2e9&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; add &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;-&lt;/span&gt;&lt;span style="color:#0550ae"&gt;2e9&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;
&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; 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;first &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;second&lt;span style="color:#1f2328"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ckmin&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;sub&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;second &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;first&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;add&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;first &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;second&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;auto&lt;/span&gt; query &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;&lt;span style="color:#cf222e"&gt;char&lt;/span&gt; ch&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; k&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#0550ae"&gt;-&amp;gt;&lt;/span&gt; ll &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;? &amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; ch &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:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; k &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl&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 dis&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; dis&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; dis&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; U &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1e9&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; query&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;R&amp;#39;&lt;/span&gt;&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; query&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;R&amp;#39;&lt;/span&gt;&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; query&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;D&amp;#39;&lt;/span&gt;&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; ll val1 &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; query&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;D&amp;#39;&lt;/span&gt;&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; query&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;U&amp;#39;&lt;/span&gt;&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; query&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;U&amp;#39;&lt;/span&gt;&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; query&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;U&amp;#39;&lt;/span&gt;&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; ll val2 &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; query&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#39;U&amp;#39;&lt;/span&gt;&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; ll t &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1LL&lt;/span&gt; &lt;span style="color:#0550ae"&gt;*&lt;/span&gt; val2 &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; add &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; &lt;span style="color:#0550ae"&gt;4LL&lt;/span&gt; &lt;span style="color:#0550ae"&gt;*&lt;/span&gt; U&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; s &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;1LL&lt;/span&gt; &lt;span style="color:#0550ae"&gt;*&lt;/span&gt; val1 &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; sub &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; &lt;span style="color:#0550ae"&gt;4LL&lt;/span&gt; &lt;span style="color:#0550ae"&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; ll x &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;t &lt;span style="color:#0550ae"&gt;+&lt;/span&gt; s&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; y &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; t &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; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;! &amp;#34;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; x &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:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; y &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; endl&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><item><title>Educational Codeforces Round 184 ABCD1</title><link>https://4hh.github.io/codeforces/codeforces-edu-184/</link><pubDate>Sat, 15 Nov 2025 11:27:20 +0800</pubDate><guid>https://4hh.github.io/codeforces/codeforces-edu-184/</guid><description>&lt;h1 id="a-alice-and-bob"&gt;A. Alice and Bob&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;取每个点只得 1 分，也就是让 Bob 能够取得的值最多。&lt;/li&gt;
&lt;li&gt;我们发现我们总是可以让 Bob 取 $a + 1$ 或者 $a - 1$ . 我们只需要求出在这两种情况下，Bob 能够取得的数量是多少。这可以使用二分。&lt;/li&gt;
&lt;/ul&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, x;\n cin \u003e\u003e n \u003e\u003e x;\n\n VI a(n);\n For(i, 0, n) cin \u003e\u003e a[i];\n\n int bscore = -1, ans = -1;\n int tmp = n - (upper_bound(a.begin(), a.end(), x) - a.begin());\n if (ckmax(bscore, tmp))\n ans = x &amp;#43; 1;\n\n tmp = n - (a.end() - lower_bound(a.begin(), a.end(), x));\n if (ckmax(bscore, tmp))\n ans = x - 1;\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; 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; n &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;
&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;
&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;
&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; bscore &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; ans &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; &lt;span style="color:#cf222e"&gt;int&lt;/span&gt; tmp &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; n &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;upper_bound&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;begin&lt;span style="color:#1f2328"&gt;(),&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;end&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; a&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;begin&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;ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;bscore&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; tmp&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; x &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&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; tmp &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; n &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;end&lt;span style="color:#1f2328"&gt;()&lt;/span&gt; &lt;span style="color:#0550ae"&gt;-&lt;/span&gt; lower_bound&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;a&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;begin&lt;span style="color:#1f2328"&gt;(),&lt;/span&gt; a&lt;span style="color:#1f2328"&gt;.&lt;/span&gt;end&lt;span style="color:#1f2328"&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; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;bscore&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; tmp&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; x &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; 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="b-drifting-away"&gt;B. Drifting Away&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;如果出现了以下几种情况，那么可以无限循环：
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;**&lt;/code&gt;, &lt;code&gt;&amp;gt;&amp;lt;&lt;/code&gt;, &lt;code&gt;&amp;gt;*&lt;/code&gt;, &lt;code&gt;*&amp;lt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;通过观察和模拟，我们发现如果没有无限循环，那么字符串中最多只有一个 &lt;code&gt;*&lt;/code&gt;。如果出现了一次 &lt;code&gt;&amp;gt;&lt;/code&gt;，那么它的右侧只能出现 &lt;code&gt;&amp;gt;&lt;/code&gt;，不能再出现其他字符。如果出现了一次 &lt;code&gt;&amp;lt;&lt;/code&gt;，那么它的左侧只能出现 &lt;code&gt;&amp;lt;&lt;/code&gt;，不能出现其他字符。&lt;/li&gt;
&lt;li&gt;总结一下，其实就是求字符串中，最长连续相同的子字符串的长度。&lt;/li&gt;
&lt;li&gt;特殊判断一下字符串中只含有一个 &lt;code&gt;*&lt;/code&gt; 的情况，这种情况在样例中已经给出了。&lt;/li&gt;
&lt;/ul&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 string s;\n cin \u003e\u003e s;\n\n int n = SZ(s);\n bool ok = false;\n\n For(i, 0, n - 1) {\n if ((s[i] == &amp;#39;\u003e&amp;#39; \u0026\u0026 s[i &amp;#43; 1] == &amp;#39;\u003c&amp;#39;) || (s[i] == &amp;#39;\u003e&amp;#39; \u0026\u0026 s[i &amp;#43; 1] == &amp;#39;*&amp;#39;) ||\n (s[i] == &amp;#39;*&amp;#39; \u0026\u0026 s[i &amp;#43; 1] == &amp;#39;\u003c&amp;#39;) || (s[i] == &amp;#39;*&amp;#39; \u0026\u0026 s[i &amp;#43; 1] == &amp;#39;*&amp;#39;)) {\n ok = true;\n break;\n }\n }\n\n if (ok) {\n cout \u003c\u003c \&amp;#34;-1\\n\&amp;#34;;\n return;\n }\n\n int cnt = 0;\n For(i, 0, n) {\n if (s[i] == &amp;#39;*&amp;#39;)\n cnt&amp;#43;&amp;#43;;\n }\n\n int cur = 1, ans = 1;\n char ch = s[0];\n\n For(i, 1, n) {\n if (s[i] == s[i - 1]) {\n cur&amp;#43;&amp;#43;;\n } else {\n if (ckmax(ans, cur)) {\n ch = s[i - 1];\n }\n cur = 1;\n }\n }\n ckmax(ans, cur);\n\n if (n \u003e 1)\n ans &amp;#43;= cnt;\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; 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; 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; n &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; SZ&lt;span style="color:#1f2328"&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 style="color:#cf222e"&gt;bool&lt;/span&gt; ok &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;
&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:#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; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;((&lt;/span&gt;s&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:#0a3069"&gt;&amp;#39;&amp;gt;&amp;#39;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;amp;&amp;amp;&lt;/span&gt; s&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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:#0a3069"&gt;&amp;#39;&amp;lt;&amp;#39;&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;s&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:#0a3069"&gt;&amp;#39;&amp;gt;&amp;#39;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;amp;&amp;amp;&lt;/span&gt; s&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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:#0a3069"&gt;&amp;#39;*&amp;#39;&lt;/span&gt;&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#0550ae"&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;s&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:#0a3069"&gt;&amp;#39;*&amp;#39;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;amp;&amp;amp;&lt;/span&gt; s&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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:#0a3069"&gt;&amp;#39;&amp;lt;&amp;#39;&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;s&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:#0a3069"&gt;&amp;#39;*&amp;#39;&lt;/span&gt; &lt;span style="color:#0550ae"&gt;&amp;amp;&amp;amp;&lt;/span&gt; s&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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:#0a3069"&gt;&amp;#39;*&amp;#39;&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; ok &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; &lt;span style="color:#cf222e"&gt;break&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;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;ok&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; 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;s&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:#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; 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;
&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 &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; 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;char&lt;/span&gt; ch &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; s&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&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;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;s&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; s&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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; 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:#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; &lt;span style="color:#cf222e"&gt;if&lt;/span&gt; &lt;span style="color:#1f2328"&gt;(&lt;/span&gt;ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;ans&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; cur&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; ch &lt;span style="color:#0550ae"&gt;=&lt;/span&gt; s&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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; cur &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; ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;ans&lt;span style="color:#1f2328"&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;
&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;n &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:#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; cnt&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-range-operation"&gt;C. Range Operation&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;很有意思的一道题目。&lt;/li&gt;
&lt;li&gt;当区间 $[l, r]$ 变化的时候， $l + r$ 也会变化，很难找到单调性，也就是找不到贪心的性质。不妨从增量的角度考虑。&lt;/li&gt;
&lt;li&gt;如果选择的区间是 $[l, r]$ ，数组和的增量是 $\Delta_{1} = (l + r) len - sum(l, r)$ ，其中 $len = r - l + 1$ .&lt;/li&gt;
&lt;li&gt;如果把区间往右扩展一个位置变成 $[l, r + 1]$ , 数组和的增量是 $\Delta_2 = (l + r + 1)(len + 1) - sum(l, r + 1) = \Delta_1 + 2(r + 1) - a_{r + 1}$&lt;/li&gt;
&lt;li&gt;我们发现一个很整齐的形式： $2(r + 1) - a_{r + 1}$&lt;/li&gt;
&lt;li&gt;也就是说，把区间往右扩展一位，它的增量恰好就是 $2(r + 1) - a_{r + 1}$ 。也就是说每一个位置的贡献是 $2i - a_i$ 。&lt;/li&gt;
&lt;li&gt;设数组 $b_i = 2i - a_i$ ，因为我们只能进行最多一次操作，也就是我们只需要取一段区间，使得这个区间的贡献最大，也就是取一段连续的 $b_i$ ，使得区间和最大。这是线性 DP 的例题：“求最大子数组和”。&lt;/li&gt;
&lt;/ul&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 VL a(n &amp;#43; 1), b(n &amp;#43; 1);\n ll sum{};\n For1(i, 1, n) {\n cin \u003e\u003e a[i];\n sum &amp;#43;= a[i];\n b[i] = 2 * i - a[i];\n }\n\n VL d(n &amp;#43; 1);\n ll ans = 0;\n For1(i, 1, n) {\n d[i] = max(b[i], d[i - 1] &amp;#43; b[i]);\n ckmax(ans, d[i]);\n }\n\n ans = ans &amp;#43; sum;\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; VL 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; b&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; ll sum&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; 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; sum &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&gt;&lt;/span&gt;&lt;span style="display:flex;"&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:#0550ae"&gt;=&lt;/span&gt; &lt;span style="color:#0550ae"&gt;2&lt;/span&gt; &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&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; VL d&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; 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; d&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; max&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; d&lt;span style="color:#1f2328"&gt;[&lt;/span&gt;i &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; 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; ckmax&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;ans&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; d&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&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; sum&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="d1-removal-of-a-sequence-easy-version"&gt;D1. Removal of a Sequence (Easy Version)&lt;/h1&gt;
&lt;p&gt;很有意思的一道题目。&lt;/p&gt;
&lt;p&gt;如果要从删除掉了哪些数字的角度考虑，可能就有点复杂了。&lt;/p&gt;
&lt;p&gt;这道题目的操作次数比较少，我们可以从全部操作完之后，剩下了多少个数字的角度考虑。对于给定的范围 $[1, n]$ ，操作完之后，剩下多少个数字是比较容易求出来的。&lt;/p&gt;
&lt;p&gt;我们对 $n$ 进行二分，如果操作完之后，剩下的数字个数 $\ge k$ ，说明 $n$ 是合法的。我们找到最小的 $n$ ，此时 $n$ 就是答案。&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 ll x, y, k;\n cin \u003e\u003e x \u003e\u003e y \u003e\u003e k;\n\n auto check = [\u0026](ll p) -\u003e bool {\n For(i, 0, x) { p -= p / y; }\n return p \u003e= k;\n };\n\n ll l = 1, r = 1e12, mid;\n while (l \u003c r) {\n mid = (l &amp;#43; r) / 2;\n if (check(mid))\n r = mid;\n else\n l = mid &amp;#43; 1;\n }\n if (check(r))\n cout \u003c\u003c r \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; ll x&lt;span style="color:#1f2328"&gt;,&lt;/span&gt; y&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; 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; 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; &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 p&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; 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; x&lt;span style="color:#1f2328"&gt;)&lt;/span&gt; &lt;span style="color:#1f2328"&gt;{&lt;/span&gt; p &lt;span style="color:#0550ae"&gt;-=&lt;/span&gt; p &lt;span style="color:#0550ae"&gt;/&lt;/span&gt; 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;return&lt;/span&gt; p &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;1e12&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:#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; r &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; l &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 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;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; cout &lt;span style="color:#0550ae"&gt;&amp;lt;&amp;lt;&lt;/span&gt; r &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;</description></item></channel></rss>