{"id":120,"date":"2026-09-21T22:42:51","date_gmt":"2026-09-21T14:42:51","guid":{"rendered":"https:\/\/done.baka233.top\/?p=120"},"modified":"2026-09-21T22:42:51","modified_gmt":"2026-09-21T14:42:51","slug":"atcoder-beginner-contest-476-solution-abcdef","status":"publish","type":"post","link":"https:\/\/done.baka233.top\/index.php\/2026\/09\/21\/atcoder-beginner-contest-476-solution-abcdef\/","title":{"rendered":"[AtCoder Beginner Contest 476] Solution (ABCDEF)"},"content":{"rendered":"<h3><a href=\"https:\/\/atcoder.jp\/contests\/abc476\">\u8fd9\u91cc<\/a>\u662f\u9898\u76ee\u3002<\/h3>\n<h3>A &#8211; Appender<\/h3>\n<p>\u8f93\u5165\u5b57\u7b26\u4e32$s$\uff0c\u5982\u679c$s$\u4ee5\u5b57\u6bcd e \u7ed3\u5c3e\uff0c\u5c31\u5728$s$\u672b\u5c3e\u52a0\u4e0a\u5b57\u6bcd r \u540e\u8f93\u51fa\uff1b\u5426\u5219\u5728$s$\u672b\u5c3e\u52a0\u4e0a er \u540e\u8f93\u51fa\u3002<\/p>\n<p>\u601d\u8def\u5982\u9898\u3002<\/p>\n<h3>B &#8211; Wild Card<\/h3>\n<p>\u8f93\u5165\u4e00\u4e2a\u7531\u5c0f\u5199\u5b57\u6bcd\u6784\u6210\u7684\u5b57\u7b26\u4e32$s$\uff0c\u4e0e\u4e00\u4e2a\u7531\u5c0f\u5199\u5b57\u6bcd\u548c\u7b26\u53f7 * \u6784\u6210\u7684\u5b57\u7b26\u4e32$t$\uff0c\u5224\u65ad\u80fd\u5426\u901a\u8fc7\u66f4\u6539$t$\u4e2d\u6bcf\u4e2a * \u4e3a\u67d0\u4e2a\u5c0f\u5199\u5b57\u6bcd\u4ee5\u4f7f\u5f97$t$\u7b49\u4e8e$s$\u3002<\/p>\n<p>* \u65e2\u7136\u662f\u968f\u4fbf\u7ed9\u503c\uff0c\u5c31\u4e0d\u7528\u8003\u8651\u4e86\uff0c\u53ea\u9700\u8981\u8003\u8651$t$\u4e2d\u5c0f\u5199\u5b57\u6bcd\u662f\u5426\u4e0e$s$\u5bf9\u5e94\u4f4d\u7f6e\u7684\u5c0f\u5199\u5b57\u6bcd\u4e00\u81f4\u5373\u53ef\u3002<\/p>\n<h3>C &#8211; Third Largest Number<\/h3>\n<p>\u8f93\u5165\u4e00\u4e2a\u957f\u5ea6\u5927\u4e8e\u7b49\u4e8e3\u7684\u5e8f\u5217$A$\uff0c\u5bf9\u4e8e\u6bcf\u4e2a$k = 3,\\, 4,\\, &#8230;,\\, N$\uff0c\u8f93\u51fa\u5f53$A_1,\\, A_2,\\, &#8230;,\\, A_k$\u964d\u5e8f\u6392\u5e8f\u65f6\u6392\u5728\u7b2c\u4e09\u4f4d\u7684\u6570\u3002$N\\leq 5\\times 10^5$\u3002<\/p>\n<p>\u6bcf\u6b21\u90fd\u5728\u5df2\u7ecf\u964d\u5e8f\u6392\u5e8f\u5b8c\u6bd5\u7684\u5e8f\u5217\u4e2d\u63d2\u5165\u4e00\u4e2a\u6570\uff0c\u4f7f\u5176\u4ecd\u6ee1\u8db3\u964d\u5e8f\u6392\u5217\uff0c\u8003\u8651\u4f7f\u7528\u5927\u6839\u5806\uff0c\u6bcf\u6b21\u8f93\u51fa\u65f6\uff0c\u53ea\u9700\u53d6\u51fa\u5806\u9876\u4e24\u4e2a\u5143\u7d20\uff0c\u6b64\u65f6\u5806\u9876\u5373\u4e3a\u7b2c\u4e09\u5927\u7684\u6570\uff0c\u5f53\u7136\u8fd8\u8981\u628a\u53d6\u51fa\u7684\u4e24\u4e2a\u5143\u7d20\u518d\u653e\u56de\u53bb\u3002\u65f6\u95f4\u590d\u6742\u5ea6$O(N\\log N)$\u3002<\/p>\n<h3>D &#8211; Automat<\/h3>\n<p>\u6709$N$\u4e2a\u751c\u70b9\u548c$M$\u4e2a\u996e\u6599\uff0c\u7b2c$i$\u4e2a\u751c\u70b9\u4ef7\u683c\u4e3a$A_i$\uff0c\u7b2c$j$\u4e2a\u996e\u6599\u4ef7\u683c\u4e3a$B_j$\u3002\u751c\u70b9\u53ef\u4ee5\u7528\u201c1\u5143\u949e\u7968\u201d\u548c\u201c$K$\u5143\u949e\u7968\u201d\u8d2d\u5165\uff0c\u4f46\u996e\u6599\u53ea\u80fd\u7528\u201c$K$\u5143\u949e\u7968\u201d\u4e70\uff0c\u6bcf\u79cd\u751c\u70b9\u6216\u996e\u6599\u6700\u591a\u4e70\u4e00\u4e2a\u3002\u627e\u96f6\u65f6\u53ea\u4f1a\u7ed9\u201c1\u5143\u949e\u7968\u201d\u3002\u6c42\u4f7f\u7528$X$\u5f20\u201c1\u5143\u949e\u7968\u201d\u548c$Y$\u5f20\u201c$K$\u5143\u949e\u7968\u201d\u6700\u591a\u53ef\u4ee5\u8d2d\u4e70\u591a\u5c11\u4e2a\u5546\u54c1\uff08\u5373\u751c\u70b9\u4e0e\u996e\u6599\u4e2a\u6570\u548c\u6700\u5927\u503c\uff09\u3002$N,\\, M\\leq 2\\times 10^5$\u3002<\/p>\n<p>\u53ef\u4ee5\u8d2a\u5fc3\u3002\u996e\u6599\u8981\u6c42\u66f4\u4e25\u683c\uff0c\u5c31\u5148\u8003\u8651\u4e70\u591a\u5c11\u4e2a\u996e\u6599\uff0c\u518d\u770b\u770b\u4e70\u5b8c\u996e\u6599\u5269\u4e0b\u7684\u94b1\u6700\u591a\u80fd\u4e70\u591a\u5c11\u4e2a\u751c\u70b9\u3002\u5373\u4ece$0$\u5230$m$\u679a\u4e3e\u4e70\u7684\u996e\u6599\u4e2a\u6570\uff0c\u8ba1\u7b97\u5269\u4f59\u94b1\u6570\u80fd\u4e70\u7684\u6700\u5927\u751c\u70b9\u6570\uff0c\u6bcf\u6b21\u66f4\u65b0\u996e\u6599\u4e0e\u751c\u70b9\u4e2a\u6570\u548c\u6700\u5927\u503c\u3002\u65f6\u95f4\u590d\u6742\u5ea6$O(N\\log N)$\uff0c\u542b\u6392\u5e8f\u3001\u4e8c\u5206\u7b49\uff0c\u8be6\u89c1\u4ee3\u7801\u3002<\/p>\n<pre><code class=\"\" data-line=\"\">signed main(){ \/\/ \u8bf4\u660e\u5f00\u4e86long long\n\tcin &gt;&gt; n &gt;&gt; m &gt;&gt; k &gt;&gt; x &gt;&gt; y;\n\tfor(int i = 1; i &lt;= n; i++) cin &gt;&gt; a[i];\n\tsort(a + 1, a + n + 1);\n\tfor(int i = 1; i &lt;= n; i++) sa[i] = sa[i - 1] + a[i];\n\tfor(int i = 1; i &lt;= m; i++) cin &gt;&gt; b[i];\n\tsort(b + 1, b + m + 1);\n\tfor(int i = 1; i &lt;= m; i++){\n\t\tsb[i] = sb[i - 1] + b[i];\n\t\tscb[i] = scb[i - 1] + ceil(b[i] * 1.0 \/ k); \/\/ \u4e701 ~ i\u53f7\u996e\u6599\u9700\u8981\u51e0\u5f20K\u94b1\n\t}\n\tfor(int i = 0; i &lt;= m; i++){ \/\/ \u679a\u4e3e\u996e\u54c1\u6570\n\t\tif(scb[i] &gt; y) break; \/\/ \u6b64\u65f6K\u94b1\u5df2\u7ecf\u4e0d\u591f\uff0c\u76f4\u63a5break\n\t\tint ca = y - scb[i]; \/\/ \u5269\u4e0bca\u5f20K\u94b1\n\t\tint pm = k * scb[i] - sb[i]; \/\/ \u4e70\u996e\u6599\u7ed9\u7684\u96f6\u94b1\n\t\tint p = upper_bound(sa + 1, sa + n + 1, ca * k + x + pm) - sa - 1; \/\/ \u627e\u6700\u5927\u751c\u70b9\u6570\n\t\tans = max(ans, p + i); \/\/ \u66f4\u65b0\u4e2a\u6570\u548c\u6700\u5927\u503c\n\t}\n\tcout &lt;&lt; ans &lt;&lt; &#039;\\n&#039;;\n\treturn 0;\n}<\/code><\/pre>\n<h3>E &#8211; Min-Max Swap<\/h3>\n<p>\u7ed9\u51fa\u4e00\u4e2a\u4ece$1$\u5230$N$\u7684\u6392\u5217$P$\uff0c\u8fdb\u884c$M$\u6b21\u64cd\u4f5c\uff0c\u6bcf\u6b21\u64cd\u4f5c\u7ed9\u51fa$l,\\, r$\uff0c\u5c06$P$\u4e2d\u4e0b\u6807\u4f4d\u4e8e$[l,\\, r]$\u4e4b\u95f4\u7684\u6700\u5927\u5143\u7d20\u4e0e\u6700\u5c0f\u5143\u7d20\u4e92\u6362\u4f4d\u7f6e\u3002\u8f93\u51fa\u8fdb\u884c\u5b8c$M$\u6b21\u64cd\u4f5c\u540e\u7684$P$\u3002$N,\\, M\\leq 2\\times 10^5$\u3002<\/p>\n<p>\u5bf9\u4e8e\u6bcf\u6b21\u64cd\u4f5c\uff0c\u5148\u8981\u627e\u5230\u533a\u95f4\u6700\u5927\u6700\u5c0f\u503c\uff0c\u63a5\u4e0b\u6765\u7684\u201c\u4e92\u6362\u4f4d\u7f6e\u201d\u8fd9\u4e00\u64cd\u4f5c\u6211\u8fd9\u6837\u8fdb\u884c\uff1a\u5c06\u533a\u95f4\u6700\u5927\u6700\u5c0f\u503c\u5206\u522b\u5b58\u5728$ma,\\, mi$\u91cc\uff0c\u5c06$ma$\u6240\u5728\u4f4d\u7f6e\u5143\u7d20\u66f4\u65b0\u4e3a$mi$\u3001$mi$\u6240\u5728\u4f4d\u7f6e\u5143\u7d20\u66f4\u65b0\u4e3a$ma$\uff0c\u518d\u4ea4\u6362$ma$\u4e0e$mi$\u7684\u6240\u5728\u4f4d\u7f6e\u3002\u8fd9\u91cc\u6709 query \u548c update\uff0c\u8003\u8651\u7ebf\u6bb5\u6811\u3002\u65f6\u95f4\u590d\u6742\u5ea6$O(M\\log N)$\u3002<\/p>\n<pre><code class=\"\" data-line=\"\">int main(){\n\tcin &gt;&gt; n &gt;&gt; m;\n\tfor(int i = 1; i &lt;= n; i++){\n\t\tcin &gt;&gt; a[i]; ps[a[i]] = i; \/\/ ps[x]\u8868\u793a\u5143\u7d20x\u6240\u5728\u4f4d\u7f6e\n\t}\n\tbuild(1, 1, n);\n\tfor(int i = 1; i &lt;= m; i++){\n\t\tint l, r;\n\t\tcin &gt;&gt; l &gt;&gt; r;\n\t\tint ma = getmax(1, l, r);\n\t\tint mi = getmin(1, l, r);\n\t\tupdate(1, ps[ma], mi); \/\/ \u8fd9\u91cc\u662f\u5728\u7ebf\u6bb5\u6811\u4e0a\u66f4\u65b0\n\t\tupdate(1, ps[mi], ma);\n\t\ta[ps[ma]] = mi; \/\/ \u8fd9\u91cc\u662f\u5728\u539f\u5e8f\u5217\u4e2d\u66f4\u65b0\n\t\ta[ps[mi]] = ma;\n\t\tswap(ps[ma], ps[mi]);\n\t}\n\tfor(int i = 1; i &lt;= n; i++) cout &lt;&lt; a[i] &lt;&lt; &#039; &#039;;\n\tcout &lt;&lt; &#039;\\n&#039;;\n\treturn 0;\n}<\/code><\/pre>\n<h3>F &#8211; Chebyshev Cafe<\/h3>\n<p>\u63cf\u8ff0\u9898\u610f\u597d\u9ebb\u70e6~~~\u56e0\u6b64\u7701\u7565\u4e86~~~\uff08$N\\leq 1500,\\, M\\leq 2\\times 10^6$\uff09<\/p>\n<p>\u6211\u5f88\u5c11\u505a\u51faF\u9898\uff0c\u5373\u4fbfAC\u4e86\u4e5f\u4e0d\u786e\u5b9a\u65b9\u6cd5\u662f\u5426\u201c\u6b63\u201d\uff0c\u53ea\u662f\u5355\u7eaf\u89c2\u5bdf\u51fa\u4e86\u4e00\u4e2a\u505a\u6cd5\u3002\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u5229\u7528\u5207\u6bd4\u96ea\u592b\u8ddd\u79bb\uff1f<\/p>\n<p>\u60f3\u5230$f_{i,\\, j}$\u662f\u80fd\u591f\u901a\u8fc7\u524d\u503c\u8f6c\u79fb\u51fa\u6765\u7684\uff0c\u4e8e\u662f\u5148$n^2$\u8dd1\u51fa$f_{1,\\, 1}$\uff0c\u7136\u540e\u601d\u8003\u5e94\u8be5\u600e\u4e48\u8f6c\u79fb\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/done.baka233.top\/wp-content\/uploads\/2026\/09\/\u6355\u83b7-3.webp'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-125\" data-original=\"https:\/\/done.baka233.top\/wp-content\/uploads\/2026\/09\/\u6355\u83b7-3.webp\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" width=\"297\" height=\"280\" \/><\/div><\/p>\n<p>\u56e0\u4e3a\u662f\u89c2\u5bdf\u51fa\u6765\u7684\uff0c\u6240\u4ee5\u9700\u8981\u901a\u8fc7\u753b\u56fe\u6765\u63cf\u8ff0\u3002\u5982\u4e0a\u56fe\uff0c\u8003\u8651\u7531$f_{i,\\, j-1}$\u63a8\u51fa$f_{i,\\, j}$\uff0c\u53d1\u73b0\u9ec4\u8272\u683c\u5b50\u4e0a\u7684\u4eba\u8981\u8d70\u7684\u8ddd\u79bb\u589e\u52a0\u4e86$1$\uff0c\u7c89\u8272\u683c\u5b50\u4e0a\u7684\u4eba\u8981\u8d70\u7684\u8ddd\u79bb\u51cf\u5c11\u4e86$1$\uff0c\u800c\u7070\u8272\u683c\u5b50\u4e0a\u7684\u4eba\u8981\u8d70\u7684\u8ddd\u79bb\u4e0d\u53d8\u3002\u8fd9\u6837\u4e00\u6765\uff0c\u5c31\u6709\uff1a$$f_{i,\\, j}=f_{i,\\, j-1}+sum_{yellow}-sum_{pink}\\quad (j&gt;1).$$<\/p>\n<p>\u5176\u4e2d$sum_{color}$\u8868\u793a\u989c\u8272\u4e3a color \u7684\u683c\u5b50\u4e0a\u7684\u603b\u4eba\u6570\u3002\u4e0d\u8fc7\uff0c\u8fd9\u4e2a\u5f0f\u5b50\u8981\u6c42\u4ece\u5de6\u8fb9\u7684\u683c\u5b50\u8f6c\u79fb\u8fc7\u6765\uff0c\u90a3\u4e48\u5982\u679c\u662f\u7b2c 1 \u5217\u7684\u683c\u5b50\u5462\uff1f<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/done.baka233.top\/wp-content\/uploads\/2026\/09\/\u6355\u83b7-5.webp'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-127\" data-original=\"https:\/\/done.baka233.top\/wp-content\/uploads\/2026\/09\/\u6355\u83b7-5.webp\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" width=\"298\" height=\"280\" \/><\/div><\/p>\n<p>\u5982\u4e0a\u56fe\uff0c\u82e5\u683c\u5b50\u4f4d\u4e8e\u7b2c 1 \u5217\uff0c\u5219\u8003\u8651\u4ece\u8be5\u683c\u5b50\u4e0a\u65b9\u7684\u90a3\u4e2a\u683c\u5b50\u8f6c\u79fb\u3002\u7c7b\u4f3c\u5730\uff0c\u84dd\u8272\u683c\u5b50\u4e0a\u7684\u4eba\u8981\u8d70\u7684\u8ddd\u79bb\u589e\u52a0\u4e86$1$\uff0c\u7eff\u8272\u683c\u5b50\u4e0a\u7684\u4eba\u8981\u8d70\u7684\u8ddd\u79bb\u51cf\u5c11\u4e86$1$\uff0c\u800c\u7070\u8272\u683c\u5b50\u4e0a\u7684\u4eba\u8981\u8d70\u7684\u8ddd\u79bb\u4e0d\u53d8\u3002\u8fd9\u6837\u4e00\u6765\uff0c\u5c31\u6709\uff1a$$f_{i,\\, j}=f_{i-1,\\, j}+sum_{blue}-sum_{green}\\quad (j=1).$$<\/p>\n<p>\u53ef\u8fd9\u4e2a$sum_{color}$\u770b\u8d77\u6765\u592a\u62bd\u8c61\u4e86\uff0c\u8981\u5177\u4f53\u5730\u53bb\u8003\u8651\u8be5\u600e\u4e48\u6c42\u3002\u89c2\u5bdf\u53d1\u73b0\uff0c\u6bcf\u79cd\u989c\u8272\u90fd\u662f\u4ece\u67d0\u4e2a\u56fa\u5b9a\u7684\u683c\u5b50\u5411\u7740\u67d0\u4e2a\u56fa\u5b9a\u7684\u65b9\u5411\u201c\u6269\u6563\u201d\uff0c\u5b9e\u9645\u4e0a\u5c31\u662f\uff1a\u9ec4\u8272\u683c\u5b50\u5411\u5de6\u6269\u6563\u3001\u7c89\u8272\u683c\u5b50\u5411\u53f3\u6269\u6563\u3001\u84dd\u8272\u683c\u5b50\u5411\u4e0a\u6269\u6563\u3001\u7eff\u8272\u683c\u5b50\u5411\u4e0b\u6269\u6563\u3002<\/p>\n<p>\u8fd9\u91cc\u6211\u5c06$sum_{color}$\u201c\u66ff\u6362\u201d\u4e3a$ks_{d,\\, i,\\, j}$\uff0c\u8868\u793a\u683c\u5b50$(i,\\, j)$\u5411$d$\u65b9\u5411\u6269\u6563\u5230\u7684\u683c\u5b50\u4e0a\u7684\u603b\u4eba\u6570\u3002\u5176\u4e2d$d=0,\\, 1,\\, 2,\\, 3$\u5206\u522b\u5bf9\u5e94\u5411\u5de6\u3001\u5411\u53f3\u3001\u5411\u4e0a\u3001\u5411\u4e0b\u3002\u90a3\u4e48\uff0c\u5f0f\u5b50\u5c31\u53ef\u4ee5\u53d8\u4e3a\uff1a$$f_{i,\\, j}=f_{i,\\, j-1}+ks_{0,\\, i,\\, j-1}-ks_{1,\\, i,\\, j}\\quad (j&gt;1),$$$$f_{i,\\, j}=f_{i-1,\\, j}+ks_{2,\\, i-1,\\, j}-ks_{3,\\, i,\\, j}\\quad (j=1).$$<\/p>\n<p>\u63a5\u4e0b\u6765\uff0c\u95ee\u9898\u53c8\u53d8\u4e3a\u4e86\u5982\u4f55\u6c42$ks$\u3002\u5148\u53ea\u8003\u8651\u5411\u5de6\u6269\u6563\uff0c\u89c1\u4e0b\u56fe\uff1a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/done.baka233.top\/wp-content\/uploads\/2026\/09\/\u6355\u83b7-6.webp'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-128\" data-original=\"https:\/\/done.baka233.top\/wp-content\/uploads\/2026\/09\/\u6355\u83b7-6.webp\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" width=\"298\" height=\"280\" \/><\/div><\/p>\n<p>\u4e0d\u96be\u53d1\u73b0\uff0c$ks_{0,\\, i,\\, j}$\u76f8\u5bf9\u4e8e$ks_{0,\\, i,\\, j-1}$\u6765\u8bf4\uff0c\u53ea\u662f\u591a\u4e86\u201c\u5411\u5de6\u4e0a\u7684\u4e00\u4e32\u201d\u548c\u201c\u5411\u5de6\u4e0b\u7684\u4e00\u4e32\u201d\u3002\u90a3\u4e48\u518d\u8003\u8651\u5411\u5176\u4ed6\u65b9\u5411\u6269\u6563\uff0c\u5176\u5b9e\u662f\u7c7b\u4f3c\u7684\uff0c\u603b\u7684\u6765\u8bf4\uff0c\u9700\u8981\u6c42\u51fa\u6bcf\u4e2a\u683c\u5b50\u5bf9\u5e94\u7684\u201c\u5411\u5de6\u4e0a\u7684\u4e00\u4e32\u201d\u201c\u5411\u5de6\u4e0b\u7684\u4e00\u4e32\u201d\u201c\u5411\u53f3\u4e0a\u7684\u4e00\u4e32\u201d\u201c\u5411\u53f3\u4e0b\u7684\u4e00\u4e32\u201d\u8fd9 4 \u6761\u4e32\u3002\u53ef\u4ee5\u8bbe$ds_{e,\\, i,\\, j}$\u8868\u793a\u683c\u5b50$(i,\\, j)$\u201c\u5411$e$\u65b9\u5411\u7684\u4e00\u4e32\u201d\u4e0a\u7684\u603b\u4eba\u6570\uff0c\u5176\u4e2d$e=0,\\, 1,\\, 2,\\, 3$\u5206\u522b\u5bf9\u5e94\u5de6\u4e0a\u3001\u53f3\u4e0a\u3001\u5de6\u4e0b\u3001\u53f3\u4e0b\u3002\u81f3\u4e8e\u8fd9\u4e2a$ds$\u662f\u600e\u4e48\u6c42\u7684\u6211\u5c31\u4e0d\u8bf4\u4e86\uff0c\u56e0\u4e3a\u5f88\u5bb9\u6613\uff08\u4e5f\u56e0\u4e3a\u6211\u6ca1\u7cbe\u529b\u4e86\uff09\u3002<\/p>\n<p>\u6240\u4ee5\uff0c\u62ff\u5411\u5de6\u6269\u6563\u4e3a\u4f8b\uff0c$ks$\u8fd9\u4e48\u8f6c\u79fb\uff1a$$ks_{0,\\, i,\\, j}=ks_{0,\\, i,\\, j-1}+ds_{0,\\, i,\\, j}+ds_{2,\\, i,\\, j}-c_{i,\\, j}.$$<\/p>\n<p>\u5176\u4e2d$c_{i,\\, j}$\u8868\u793a\u683c\u5b50$(i,\\, j)$\u4e0a\u7684\u4eba\u6570\uff0c\u8fd9\u4e2a\u4e00\u5f00\u59cb\u5c31\u53ef\u4ee5\u6c42\u51fa\u6765\u3002\u8fd9\u91cc\u663e\u7136\u8981\u51cf\u53bb$c_{i,\\, j}$\uff0c\u56e0\u4e3a\u91cd\u590d\u8ba1\u7b97\u4e86\u3002<\/p>\n<p>\u7ec8\u4e8e\u7ec8\u4e8e~~~$ks$\u6574\u5b8c\u4e86\uff0c\u8fdb\u800c$f$\u4e5f\u5c31\u6574\u5b8c\u4e86\u3002\u4e0d\u8fc7\uff0c\u8fd8\u8981\u6ce8\u610f\uff0c\u6700\u540e\u8f93\u51fa\u7684\u4e0d\u662f$f$\u4e2d\u7684\u6240\u6709\u5143\u7d20\u76f4\u63a5\u5f02\u6216\u8d77\u6765\u7684\u503c\uff0c\u800c\u662f\u6240\u6709$f_{i,\\, j}+(i-1)N+(j-1)$\u5f02\u6216\u8d77\u6765\u7684\u7ed3\u679c\u3002\u90e8\u5206\u4ee3\u7801\u89c1\u4e0b\uff1a<\/p>\n<pre><code class=\"\" data-line=\"\">void init(){\n\tcin &gt;&gt; n &gt;&gt; m;\n\tfor(int i = 1; i &lt;= n; i++) cin &gt;&gt; a[i];\n\tfor(int i = 1; i &lt;= n; i++) cin &gt;&gt; b[i];\n\tfor(int i = 1; i &lt;= n; i++)\n\t\tfor(int j = 1; j &lt;= n; j++) c[i][j] = (a[i] * b[j]) % m;\n\tfor(int i = 1; i &lt;= n; i++)\n\t\tfor(int j = 1; j &lt;= n; j++) f[1][1] += max(i - 1, j - 1) * c[i][j];\n}\nint ds[4][N][N]; \/\/ 0-\u5de6\u4e0a 1-\u53f3\u4e0a 2-\u5de6\u4e0b 3-\u53f3\u4e0b\nint ks[4][N][N]; \/\/ 0-\u5de6   1-\u53f3   2-\u4e0a   3-\u4e0b\nvoid work1(){\n\tfor(int i = 1; i &lt;= n; i++) \/\/ \u4ece\u4e0a\u5f80\u4e0b\n\t\tfor(int j = 1; j &lt;= n; j++)\n\t\t\tds[0][i][j] = ds[0][i - 1][j - 1] + c[i][j], \/\/ \u5de6\u4e0a\n\t\t\tds[1][i][j] = ds[1][i - 1][j + 1] + c[i][j]; \/\/ \u53f3\u4e0a\n\tfor(int i = n; i &gt;= 1; i--) \/\/ \u4ece\u4e0b\u5f80\u4e0a\n\t\tfor(int j = 1; j &lt;= n; j++)\n\t\t\tds[2][i][j] = ds[2][i + 1][j - 1] + c[i][j], \/\/ \u5de6\u4e0b\n\t\t\tds[3][i][j] = ds[3][i + 1][j + 1] + c[i][j]; \/\/ \u53f3\u4e0b\n\t\/\/ \u5f00\u59cb\u6269\u6563\n\tfor(int i = 1; i &lt;= n; i++)\n\t\tfor(int j = 1; j &lt;= n; j++)\n\t\t\tks[0][i][j] = ks[0][i][j - 1] + ds[0][i][j] + ds[2][i][j] - c[i][j]; \/\/ \u5de6\n\tfor(int i = 1; i &lt;= n; i++)\n\t\tfor(int j = n; j &gt;= 1; j--)\n\t\t\tks[1][i][j] = ks[1][i][j + 1] + ds[1][i][j] + ds[3][i][j] - c[i][j]; \/\/ \u53f3\n\tfor(int j = 1; j &lt;= n; j++)\n\t\tfor(int i = 1; i &lt;= n; i++)\n\t\t\tks[2][i][j] = ks[2][i - 1][j] + ds[0][i][j] + ds[1][i][j] - c[i][j]; \/\/ \u4e0a\n\tfor(int j = 1; j &lt;= n; j++)\n\t\tfor(int i = n; i &gt;= 1; i--)\n\t\t\tks[3][i][j] = ks[3][i + 1][j] + ds[2][i][j] + ds[3][i][j] - c[i][j]; \/\/ \u4e0b\n}\nvoid work2(){\n\tfor(int i = 1; i &lt;= n; i++)\n\t\tfor(int j = 1; j &lt;= n; j++){\n\t\t\tif(i == 1 &amp;&amp; j == 1) continue; \/\/ \u8df3\u8fc7(1, 1)\n\t\t\tif(j == 1)\n\t\t\t\tf[i][j] = f[i - 1][j] + ks[2][i - 1][j] - ks[3][i][j];\n\t\t\telse\n\t\t\t\tf[i][j] = f[i][j - 1] + ks[0][i][j - 1] - ks[1][i][j];\n\t\t}\n}\nvoid getans(){\n\tint ans = 0;\n\tfor(int i = 1; i &lt;= n; i++)\n\t\tfor(int j = 1; j &lt;= n; j++)\n\t\t\tans ^= (f[i][j] + (i - 1) * n + j - 1);\n\tcout &lt;&lt; ans &lt;&lt; &#039;\\n&#039;;\n}\nsigned main(){\n\tinit();\n\twork1();\n\twork2();\n\tgetans();\n\treturn 0;\n}<\/code><\/pre>\n<p>\u8fd8\u6ca1\u8bf4\u65f6\u95f4\u590d\u6742\u5ea6\u5462\uff0c\u6309\u91cf\u7ea7\u8bf4\u5e94\u8be5\u662f$O(N^2)$\u3002\u867d\u7136\u8fd9\u91cc\u6709\u597d\u591a\u4e2a$N^2$\uff0c\u4e0d\u8fc7\u95ee\u9898\u4e0d\u5927\uff0c\u51b5\u4e14\u8fd9\u9053\u9898\u65f6\u9650\u7ed9\u5230\u4e86 3 \u79d2\uff0c\u6bd4\u5176\u4ed6\u9898\u591a\u4e86\u6574\u6574 1 \u79d2\u3002<\/p>\n<h3>G &#8211; Increasing Popcount<\/h3>\n<p>\u522b\u770b\u4e86\uff0c\u5565\u4e5f\u6ca1\u6709\uff08\u82e6\u7b11\uff09\u3002<\/p>\n<h3>\u6700\u540e<\/h3>\n<p>\u5199\u9898\u89e3\u53ef\u592a\u7d2f\u4e86\uff0c\u4f46\u5f88\u559c\u6b22\uff0c\u53ef\u8c13\u9163\u7545\u6dcb\u6f13\u3002<\/p>\n<h3 style=\"text-align: center;\">&#8212;&#8212;&#8212; END &#8212;&#8212;&#8212;<\/h3>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u91cc\u662f\u9898\u76ee\u3002 A &#8211; Appender \u8f93\u5165\u5b57\u7b26\u4e32$s$\uff0c\u5982\u679c$s$\u4ee5\u5b57\u6bcd e \u7ed3\u5c3e\uff0c\u5c31\u5728$s$\u672b [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-120","post","type-post","status-publish","format-standard","hentry","category-5"],"_links":{"self":[{"href":"https:\/\/done.baka233.top\/index.php\/wp-json\/wp\/v2\/posts\/120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/done.baka233.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/done.baka233.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/done.baka233.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/done.baka233.top\/index.php\/wp-json\/wp\/v2\/comments?post=120"}],"version-history":[{"count":0,"href":"https:\/\/done.baka233.top\/index.php\/wp-json\/wp\/v2\/posts\/120\/revisions"}],"wp:attachment":[{"href":"https:\/\/done.baka233.top\/index.php\/wp-json\/wp\/v2\/media?parent=120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/done.baka233.top\/index.php\/wp-json\/wp\/v2\/categories?post=120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/done.baka233.top\/index.php\/wp-json\/wp\/v2\/tags?post=120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}