{"id":782,"date":"2024-07-19T09:00:00","date_gmt":"2024-07-19T01:00:00","guid":{"rendered":"https:\/\/seanxd.com\/?p=782"},"modified":"2024-06-07T12:16:31","modified_gmt":"2024-06-07T04:16:31","slug":"zerojudge-n415","status":"publish","type":"post","link":"https:\/\/seanxd.com\/en\/zerojudge-n415\/","title":{"rendered":"ZeroJudge N415: Sculpture"},"content":{"rendered":"\n\n\n<p>\u535a\u7269\u9928\u7684\u5c55\u9593\u6709 N \u5ea7\u96d5\u50cf\uff0c\u5206\u5225\u653e\u5728\u4f4d\u7f6e 1\u30012\u3001\u2026\u3001N\uff0c\u5df2\u77e5\u653e\u5728\u4f4d\u7f6e i \u7684\u96d5\u50cf\u91cd\u91cf\u70ba W\u3002i \u7ba1\u7406\u54e1\u8981\u4f9d\u7167\u96d5\u50cf\u7684\u91cd\u91cf\u5c0d\u5b83\u5011\u6392\u5e8f\uff1a<strong>\u5982\u679c\u5b58\u5728\u5169\u5ea7\u76f8\u9130\u7684\u96d5\u50cf\uff0c\u4e5f\u5c31\u662f\u5206\u5225\u5728\u4f4d\u7f6e i \u548c i+1\uff0c\u6eff\u8db3 W<sub>i<\/sub> > W<sub>i + 1<\/sub>\uff0c\u7ba1\u7406\u54e1\u6703\u4ee5\u6a5f\u5668\u4ea4\u63db\u5169\u5ea7\u96d5\u50cf\u7684\u4f4d\u7f6e\uff0c\u6b64\u4e00\u52d5\u4f5c\u6703\u82b1\u8cbb W<sub>i<\/sub> + W<sub>i + 1<\/sub> \u55ae\u4f4d\u7684\u96fb\u529b\u3002<\/strong><\/p>\n\n\n\n<p>\u7ba1\u7406\u54e1\u6703\u91cd\u8907\u524d\u8ff0\u7684\u4ea4\u63db\u52d5\u4f5c\uff0c<strong>\u76f4\u5230\u6240\u6709\u96d5\u50cf\u4f9d\u91cd\u91cf\u7531\u5c0f\u5230\u5927\u6392\u5e8f<\/strong>\u3002<\/p>\n\n\n\n<p>\u4f8b\u5982\uff1a\u6709 N = 3 \u5ea7\u91cd\u91cf\u4e0d\u540c\u7684\u96d5\u50cf\uff0c(W<sub>1<\/sub>, W<sub>2<\/sub>, W<sub>3<\/sub>) = (5, 7, 4)\u3002\u9996\u5148\u4ea4\u63db\u4f4d\u7f6e 2 \u548c 3 \u7684\u96d5\u50cf\uff0c\u82b1\u8cbb 7 + 4 = 11 \u55ae\u4f4d\u7684\u96fb\u529b\uff0c\u6b64\u6642 (W<sub>1<\/sub>, W<sub>2<\/sub>, W<sub>3<\/sub>) = (5, 4, 7)\u3002\u63a5\u8457\u4ea4\u63db\u4f4d\u7f6e 1 \u548c 2 \u7684\u96d5\u50cf\uff0c\u82b1\u8cbb 5 + 4 = 9 \u55ae\u4f4d\u7684\u96fb\u529b\uff0c\u6b64\u6642 (W<sub>1<\/sub>, W<sub>2<\/sub>, W<sub>3<\/sub>) = (4, 5, 7)\u3002\u6392\u5e8f\u5b8c\u6210\u5f8c\u6a5f\u5668\u7e3d\u5171\u82b1\u8cbb 11 + 9 = 20 \u55ae\u4f4d\u7684\u96fb\u529b\u3002<\/p>\n\n\n\n<p>\u8acb\u5e6b\u7ba1\u7406\u54e1<strong>\u8a08\u7b97\u51fa\u9700\u82b1\u8cbb\u591a\u5c11\u55ae\u4f4d\u7684\u96fb\u529b<\/strong>\u4f86\u5b8c\u6210\u96d5\u50cf\u7684\u6392\u5e8f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u7bc4\u4f8b\u6e2c\u8cc7<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u7bc4\u4f8b\u8f38\u5165<\/th><th>\u7bc4\u4f8b\u8f38\u51fa<\/th><\/tr><\/thead><tbody><tr><td>\u7b2c\u4e00\u5217\u6709\u4e00\u500b\u6b63\u6574\u6578 N (3 \u2264 N \u2264 2\u00d710<sup>5<\/sup>)\uff0c\u8868\u793a\u6709 N \u5ea7\u96d5\u50cf\u3002\u7b2c\u4e8c\u5217\u6709 N \u500b\u6b63\u6574\u6578 W<sub>1<\/sub>, W<sub>2<\/sub>, \u2026, W<sub>N<\/sub> (W<sub>1<\/sub>, W<sub>2<\/sub>, \u2026, W<sub>N<\/sub> \u2264 106)\uff0c\u8868\u793a\u96d5\u50cf\u7684\u91cd\u91cf\uff0c\u5169\u500b\u6b63\u6574\u6578\u4e4b\u9593\u4ee5\u4e00\u500b\u7a7a\u767d\u70ba\u9593\u9694\u3002<\/td><td>\u8acb\u8f38\u51fa\u4e00\u500b\u975e\u8ca0\u6574\u6578\uff0c\u8868\u793a\u6a5f\u5668\u9700\u82b1\u8cbb\u591a\u5c11\u55ae\u4f4d\u7684\u96fb\u529b\u4f86\u5b8c\u6210\u96d5\u50cf\u7684\u6392\u5e8f\u3002<\/td><\/tr><tr><td>3<br>5 7 4<\/td><td>20<\/td><\/tr><tr><td>3<br>2 2 3<\/td><td>0<\/td><\/tr><tr><td>4<br>8 4 6 7<\/td><td>41<\/td><\/tr><tr><td>5<br>6 4 8 5 2<\/td><td>65<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">ZeroJudge N415 \u7bc4\u4f8b\u6e2c\u8cc7<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u89e3\u984c\u601d\u8def<\/h2>\n\n\n\n<p>\u672c\u984c\u5982\u679c\u4f7f\u7528 Bubble Sort \u7684\u65b9\u5f0f\u4f86\u6392\u5e8f\uff0b\u8a08\u7b97\u6703\u8d85\u6642\uff0c\u6240\u4ee5\u8981\u4f7f\u7528 Murge Sort\u3002\u4e26\u4e14\u672c\u984c\u7684\u8b8a\u6578\u9700\u8981\u958b Long Long Int\u3002<\/p>\n\n\n\n<p>\u6536\u8cc7\u6599\u7684\u6642\u5019\u5ba3\u544a\u4e00\u500b\u5168\u57df\u7684 Vector&lt;long long int> num\uff0c\u4e26\u4e14\u5c07\u6536\u5230\u7684\u8cc7\u6599\u5b58\u5230\u9019\u500b Vector \u4e2d\u3002<\/p>\n\n\n\n<p>\u4f7f\u7528\u905e\u8ff4\u7684\u65b9\u5f0f\u4f86\u505a Murge Sort\uff0c\u53ef\u4ee5\u5c07\u905e\u8ff4\u547d\u540d\u70ba\u300cmurge\u300d\uff0c\u905e\u8ff4\u7684\u56de\u50b3\u503c\u70ba\u4e00\u500b Vector&lt;long long int>\uff0c\u96d6\u7136\u984c\u76ee\u53ea\u8981\u8a08\u7b97\u96fb\u529b\uff0c\u4f46\u662f\u9084\u662f\u9700\u8981\u7d93\u904e\u6392\u5e8f\u7684\u904e\u7a0b\u6240\u4ee5\u9700\u8981\u56de\u50b3\u503c\u3002<\/p>\n\n\n\n<p>\u905e\u8ff4\u7684\u53c3\u6578\u9700\u8981\u5169\u500b\u6b63\u6578 l \u548c r\uff0c\u5206\u5225\u4ee3\u8868\u5de6\u53f3\u908a\u754c\uff0c\u8981\u5c07\u9663\u5217\u63a5\u6210\u4e00\u534a\u7136\u5f8c\u518d\u4f86\u6392\u5e8f\u3002\u9996\u5148\u5224\u65b7\uff0cif (l >= r)\uff0c\u4ee3\u8868\u9663\u5217\u5df2\u7d93\u88ab\u5207\u5230\u53ea\u5269\u4e0b\u4e00\u500b\u8cc7\u6599\u4e86\uff0c\u6240\u4ee5\u5ba3\u544a\u4e00\u500b\u66ab\u5b58 Vector&lt;long long int>tmp\uff0c\u4e26\u4e14\u9032\u884c tmp.push_back(num[l])\uff0c\u4ee3\u8868\u628a\u9019\u500b\u53ea\u5269\u4e00\u500b\u8cc7\u6599\u7684\u6578\u5b57\u5b58\u653e\u5230\u9019\u500b\u66ab\u5b58 Vector \u4e2d\uff0c\u4e26\u4e14 return tmp\u3002<\/p>\n\n\n\n<p>\u5982\u679c\u9663\u5217\u9084\u6709\u5f97\u5207\u7684\u8a71\uff0c\u5c31\u5ba3\u544a\u4e00\u500b\u6574\u6578 m = (l+r)\/2\uff0c\u4ee3\u8868\u76ee\u524d\u5169\u500b\u908a\u754c\u7684\u4e2d\u9593\u9ede\u3002\u4e4b\u5f8c\u8981\u5ba3\u544a\u5169\u500b vector&lt;long long int>\uff0c\u5206\u5225\u662f left \u8ddf right\uff0c\u4ee3\u8868\u76ee\u524d\u908a\u754c\u5207\u4e00\u534a\u4e4b\u5f8c\u7684\u6a23\u5b50\uff0cleft = murge(l, m)\uff0cright = murge(m+1, r)\u3002\u9019\u6a23\u5b50\u5c31\u6703\u518d\u6b21\u547c\u53eb\u905e\u8ff4\uff0c\u4e26\u4e14\u6703\u5f9e\u53ea\u6709\u4e00\u500b\u8cc7\u6599\u7684 Vector \u958b\u59cb\u505a\u8a08\u7b97\u3002<\/p>\n\n\n\n<p>\u518d\u4f86\u8981\u5ba3\u544a\u4e00\u500b\u6574\u6578 lsum \u4ee3\u8868 left \u9019\u500b\u9663\u5217\u4e2d\u8cc7\u6599\u7684\u7e3d\u548c\uff0c\u4e4b\u5f8c\u8a08\u7b97\u7b54\u6848\u7684\u6642\u5019\u6703\u7528\u5230\uff0c\u53ef\u4ee5\u4f7f\u7528 For\u8ff4\u5708 \u4f86\u8a08\u7b97 lsum\u3002<\/p>\n\n\n\n<p>\u5148\u5ba3\u544a\u5169\u500b\u6574\u6578 l_index \u548c r_index\uff0c\u90fd\u662f\u9810\u8a2d\u70ba 0\uff0c\u9019\u662f\u6211\u5011\u7b49\u4e00\u4e0b\u8981\u53d6 left \u548c right \u4e2d\u8cc7\u6599\u7684\u9806\u5e8f\u3002\u518d\u4f86\u8981\u8dd1\u4e00\u500b For\u8ff4\u5708\uff0c\u8981\u8dd1 left.size() + right.size() \u6b21\uff0c\u56e0\u70ba\u8981\u5c07 left \u548c right \u4e2d\u7684\u8cc7\u6599\u6392\u5e8f\u597d\u4e26\u4e14\u653e\u5230\u4e00\u500b\u65b0\u7684 Vector&lt;long long int> final \u4e2d\u3002\u4e3b\u8981\u7684\u601d\u8def\u662f\u5224\u65b7 left \u548c right \u4e2d\u7684\u8cc7\u6599\u54ea\u4e00\u500b\u6bd4\u8f03\u5c0f\u5c31\u5148\u653e\u5230 final \u4e2d\uff0c\u53ef\u4ee5\u53c3\u8003\u4e0b\u5716\u7bc4\u4f8b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"640\" loading=\"lazy\" src=\"https:\/\/seanxd.com\/wp-content\/uploads\/2024\/06\/\u8a08\u7b97\u7d19-1067-1024x640.webp\" alt=\"ZeroJudge N415 \u89e3\u984c\u601d\u8def\nMurge Sort \u904b\u4f5c\u539f\u7406\u89e3\u91cb\" class=\"wp-image-783\" srcset=\"https:\/\/seanxd.com\/wp-content\/uploads\/2024\/06\/\u8a08\u7b97\u7d19-1067-1024x640.webp 1024w, https:\/\/seanxd.com\/wp-content\/uploads\/2024\/06\/\u8a08\u7b97\u7d19-1067-300x187.webp 300w, https:\/\/seanxd.com\/wp-content\/uploads\/2024\/06\/\u8a08\u7b97\u7d19-1067-768x480.webp 768w, https:\/\/seanxd.com\/wp-content\/uploads\/2024\/06\/\u8a08\u7b97\u7d19-1067-1536x960.webp 1536w, https:\/\/seanxd.com\/wp-content\/uploads\/2024\/06\/\u8a08\u7b97\u7d19-1067-2048x1280.webp 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u5f9e\u4e0a\u5716\u53ef\u4ee5\u770b\u5230\uff0c\u300c2\u300d\u5148\u548c\u300c1\u300d\u505a\u6bd4\u8f03\uff0c\u56e0\u70ba\u300c1\u300d\u8f03\u5c0f\u6240\u4ee5\u5148\u5c07\u300c1\u300d\u653e\u5230 final \u4e2d\u3002\u63a5\u4e0b\u4f86\u9032\u884c\u300c2\u300d\u548c\u300c6\u300d\u7684\u6bd4\u8f03\uff0c\u56e0\u70ba\u300c2\u300d\u8f03\u5c0f\uff0c\u6240\u4ee5\u5c07\u300c2\u300d\u653e\u5230 final \u4e2d\uff0c\u4ee5\u6b64\u985e\u63a8\u3002<\/p>\n\n\n\n<p>\u8981\u5148\u5224\u65b7 l_index \u662f\u5426 \u5df2\u7d93\u662f left.size() \u4e86\uff0c\u9019\u6a23\u4ee3\u8868 left \u7684\u6771\u897f\u90fd\u5df2\u7d93\u653e\u5230 final \u4e2d\u4e86\uff0c\u518d\u4f86\u9084\u8981\u5148\u5224\u65b7 r_index \u662f\u5426\u4e5f\u5df2\u7d93\u662f right.size()\u4e86\uff0c\u9019\u6a23\u4e5f\u4e0d\u80fd\u653e right \u4e2d\u7684\u8cc7\u6599\u3002\u6e96\u78ba\u7684\u5224\u65b7\u5f0f\u6703\u5beb\u6210\uff1aif (l_index == left.size() || (r_index != right.size() &amp;&amp; right[r_index] &lt; left[l_index]))\u3002\u5982\u679c\u4f7f\u5f9e left \u53d6\u8cc7\u6599\u5b58\u653e\u5230 final\uff0c\u4e0d\u6703\u9032\u884c\u6392\u5e8f\uff0c\u4f46\u662f\u5982\u679c\u662f right \u4e2d\u7684\u8cc7\u6599\u6bd4\u8f03\u5c0f\uff0c\u5c31\u4ee3\u8868\u6709\u9032\u884c\u4ea4\u63db\u7684\u52d5\u4f5c\uff0c\u4e5f\u5c31\u9700\u8981\u96fb\u529b\u3002\u4e0a\u9762\u7684\u5224\u65b7\u5f0f\u5c31\u662f\u5c6c\u65bc\u5c07 right \u653e\u5230 final \u4e2d\u7684\u5224\u65b7\u5f0f\u3002<\/p>\n\n\n\n<p>\u5982\u679c\u6709\u9032\u884c\u4ea4\u63db\u7684\u52d5\u4f5c\uff0c\u5247\u9700\u8981\u8a08\u7b97\u82b1\u8cbb\u4e86\u591a\u5c11\u96fb\u529b\u3002\u9996\u5148\u8981\u5224\u65b7\u9019\u500b\u6578\u5b57\u8981\u5f80\u5de6\u5e7e\u683c\uff0c\u9019\u500b\u6578\u503c\u5176\u5be6\u5c31\u662f left.size() &#8211; l_index\uff0c\u5c31\u662f left \u9084\u5269\u4e0b\u591a\u5c11\u6578\u5b57\u7684\u610f\u601d\u3002\u518d\u4f86\u8981\u5224\u65b7\u5f80\u5de6\u8d70\u7684\u6642\u5019\u7d93\u904e\u4e86\u8ab0\uff0c\u9019\u500b\u5c31\u8981\u7528\u5230\u525b\u525b\u5ba3\u544a\u7684\u300clsum\u300d\uff0c\u56e0\u70ba lsum \u662f left \u4e2d\u7684\u6240\u6709\u6578\u5b57\u7e3d\u548c\u3002\u82b1\u8cbb\u7684\u96fb\u529b\u516c\u5f0f\u5c31\u6703\u662f\uff1a\u5f80\u5de6\u5e7e\u683c*\u81ea\u5df1\uff0blsum\u3002\u6700\u5f8c\u8a18\u5f97\u8981\u5c07 r_index++\uff0c\u9019\u6a23\u4e0b\u4e00\u6b21\u7684 For\u8ff4\u5708 \u5c31\u6703\u5224\u65b7 right \u4e2d\u7684\u4e0b\u4e00\u500b\u8cc7\u6599\u3002<\/p>\n\n\n\n<p>\u5982\u679c\u662f\u5c07 left \u4e2d\u7684\u8cc7\u6599\u5b58\u5230 final \u4e2d\uff0clsum \u8981 -= left[l_index]\uff0c\u9019\u6a23\u5b50\u8a08\u7b97\u96fb\u529b\u6642\u624d\u4e0d\u6703\u591a\u8a08\u7b97\u5176\u5be6\u5df2\u7d93\u653e\u5230 final \u4e2d\u7684\u8cc7\u6599\u3002\u8a18\u5f97\u4e5f\u8981\u5c07 l_index++\u3002<\/p>\n\n\n\n<p>\u6700\u5f8c For\u8ff4\u5708 \u7d50\u675f\u4e4b\u5f8c\u8981\u56de\u50b3 final\u3002\u5728\u4e3b\u7a0b\u5f0f\u7684\u5730\u65b9\u53ef\u4ee5\u5ba3\u544a\u4e00\u500b Vector&lt;long long int> tmp = (0, N-1)\uff0c\u4e4b\u5f8c\u8f38\u51fa ans \u5373\u53ef\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u7bc4\u4f8b\u7a0b\u5f0f\u78bc\uff0d<a href=\"https:\/\/zerojudge.tw\/ShowProblem?problemid=n415\" target=\"_blank\" rel=\"noreferrer noopener\">ZeroJudge N415: \u96d5\u50cf\u6392\u5e8f\u6210\u672c (Sculpture)<\/a><\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>#include &lt;iostream&gt;\n#include &lt;vector&gt;\nusing namespace std;\n\nvector&lt;long long int&gt;num;\nlong long int ans = 0;\n\nvector&lt;long long int&gt; murge(const long long int l, const long long int r) {\n    if (l &gt;= r) {\n        vector&lt;long long int&gt;tmp;\n        tmp.push_back(num[l]);\n        return tmp;\n    }\n    const long long int m = (l+r)\/2;\n    const vector&lt;long long int&gt;left = murge(l, m), right = murge(m+1, r);\n    vector&lt;long long int&gt;final;\n    long long int lsum = 0, l_index = 0, r_index = 0;\n    for (const long long int i : left) lsum += i;\n    for (int i = 0; i&lt;left.size()+right.size(); i++) {\n        if (l_index == left.size() || (r_index != right.size() && right[r_index] &lt; left[l_index])) {\n            ans += (right[r_index]*(left.size()-l_index)) + lsum;\n            final.push_back(right[r_index]);\n            r_index++;\n            continue;\n        }\n        final.push_back(left[l_index]);\n        lsum -= left[l_index];\n        l_index++;\n    }\n    return final;\n}\n\nint main() {\n    cin.sync_with_stdio(0);\n    cin.tie(0);\n    long long int N;\n    cin &gt;&gt; N;\n    for (long long int i = 0; i&lt;N; i++)\n    {\n        long long int tmp;\n        cin &gt;&gt; tmp;\n        num.push_back(tmp);\n    }\n    vector&lt;long long int&gt;v = murge(0, N-1);\n    cout &lt;&lt; ans &lt;&lt; &quot;\\n&quot;;\n}\n\n\/\/ZeroJudge N415\n\/\/Dr. SeanXD<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u535a\u7269\u9928\u7684\u5c55\u9593\u6709 N \u5ea7\u96d5\u50cf\uff0c\u5206\u5225\u653e\u5728\u4f4d\u7f6e 1\u30012\u3001\u2026\u3001N\uff0c\u5df2\u77e5\u653e\u5728\u4f4d\u7f6e i \u7684\u96d5\u50cf\u91cd\u91cf\u70ba W\u3002i \u7ba1\u7406\u54e1\u8981\u4f9d\u7167 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","footnotes":""},"categories":[25],"tags":[15,20,8,19,13,9,28],"class_list":["post-782","post","type-post","status-publish","format-standard","hentry","category-ioi-apcs","tag-long-long-int","tag-20","tag-8","tag-19","tag-13","tag-9","tag-28"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/seanxd.com\/en\/wp-json\/wp\/v2\/posts\/782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/seanxd.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/seanxd.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/seanxd.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/seanxd.com\/en\/wp-json\/wp\/v2\/comments?post=782"}],"version-history":[{"count":2,"href":"https:\/\/seanxd.com\/en\/wp-json\/wp\/v2\/posts\/782\/revisions"}],"predecessor-version":[{"id":785,"href":"https:\/\/seanxd.com\/en\/wp-json\/wp\/v2\/posts\/782\/revisions\/785"}],"wp:attachment":[{"href":"https:\/\/seanxd.com\/en\/wp-json\/wp\/v2\/media?parent=782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/seanxd.com\/en\/wp-json\/wp\/v2\/categories?post=782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/seanxd.com\/en\/wp-json\/wp\/v2\/tags?post=782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}