{"id":1056,"date":"2024-08-09T09:00:00","date_gmt":"2024-08-09T01:00:00","guid":{"rendered":"https:\/\/seanxd.com\/?p=1056"},"modified":"2024-07-08T09:15:04","modified_gmt":"2024-07-08T01:15:04","slug":"zerojudge-a455","status":"publish","type":"post","link":"https:\/\/seanxd.com\/zh\/zerojudge-a455\/","title":{"rendered":"ZeroJudge A455: \u5546\u54c1\u7279\u8ce3\u554f\u984c"},"content":{"rendered":"\n\n\n<p>\u5728\u4e00\u500b\u5e74\u7d42\u5927\u62cd\u8ce3\u6d3b\u52d5\u4e2d\uff0c\u4e00\u5bb6\u8fea\u5316\u8857\u7684\u5546\u5e97\u63a8\u51fa\u4e86\u4e00\u500b\u7279\u8ce3\u6d3b\u52d5\uff0c\u8001\u95c6\u8aaa\u53ea\u8981\u4f60\u82b1\u9322\u8cb7 4 \u500b\u7bb1\u5b50\uff0c\u7b2c\u4e00\u500b\u7bb1\u5b50\u6700\u591a\u53ef\u88dd 30 \u516c\u65a4\u7684\u5546\u54c1\uff0c\u7b2c\u4e8c\u500b\u7bb1\u5b50\u6700\u591a\u53ef\u88dd 40 \u516c\u65a4\u7684\u5546\u54c1\uff0c\u7b2c\u4e09\u500b\u7bb1\u5b50\u6700\u591a\u53ef\u88dd 50 \u516c\u65a4\u7684\u5546\u54c1\uff0c\u7b2c\u56db\u500b\u7bb1\u5b50\u6700\u591a\u53ef\u88dd 25 \u516c\u65a4\u7684\u5546\u54c1\u3002\u53ef\u4ee5\u6311\u9078\u7684\u5546\u54c1\u6709\u5341\u7a2e\uff0c\u91cd\u91cf\u5206\u5225\u662f 15\u300116\u300130\u300118\u300119\u300120\u300121\u300125\u300124\u3001\u53ca 17 \u516c\u65a4\u3002\u6bcf\u4e00\u7a2e\u5546\u54c1\u6700\u591a\u53ea\u80fd\u6311\u4e00\u6b21\uff0c\u4e14\u4e00\u7a2e\u5546\u54c1\u4e0d\u53ef\u62c6\u958b\u5206\u5230\u4e0d\u540c\u7bb1\u5b50\u4e2d\u3002\u5047\u8a2d\u7522\u54c1\u52a0\u7e3d\u7684\u91cd\u91cf\u5c0f\u65bc\u7b49\u65bc\u7bb1\u5b50\u7684\u9650\u5b9a\u91cd\u91cf\u5c31\u4e00\u5b9a\u88dd\u5f97\u4e0b\u9019\u4e9b\u7522\u54c1\uff0c\u7531\u65bc\u6bcf\u6a23\u7522\u54c1\u7684\u552e\u50f9\u4e00\u6a23\uff0c\u56e0\u6b64\u82e5\u6311\u9078\u80fd\u88dd\u5165 4 \u500b\u7bb1\u5b50\u7684\u5546\u54c1\u7a2e\u985e\u6108\u591a\uff0c\u4fbf\u8868\u793a\u50f9\u503c\u6108\u9ad8\u3002\u8acb\u4f60\u5beb\u4e00\u500b\u7a0b\u5f0f\u4f86\u7b97\u51fa\u6700\u591a\u53ef\u4ee5\u88dd\u5165\u9019\u4e9b\u7bb1\u5b50\u7684\u5546\u54c1\u6578\u76ee\uff0c\u4ee5\u4fbf\u4f30\u7b97\u662f\u5426\u5212\u7b97\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\u884c\u70ba\u5169\u500b\u6574\u6570 M \u53ca N \u4ee5\u7a7a\u767d\u5340\u5206\uff0c\u5176\u4e2d M \u8868\u793a\u7bb1\u5b50\u7684\u500b\u6578\uff0c\u800c N \u8868\u793a\u5546\u54c1\u7684\u7a2e\u985e\u6578\u3002<br>\u7b2c\u4e8c\u884c\u958b\u59cb\u7684 M \u884c\u5404\u70ba\u6bcf\u4e00\u500b\u7bb1\u5b50\u53ef\u5bb9\u7d0d\u7684\u6700\u5927\u91cd\u91cf (\u516c\u65a4)\u3002\u5f9e\u7b2c M+2 \u884c\u958b\u59cb\u7684 N \u884c\uff0c\u5247\u5206\u5225\u8868\u793aN\u7a2e\u5546\u54c1\u500b\u5225\u7684\u91cd\u91cf (\u516c\u65a4) \u3002<br>\u5176\u4e2d 0 &lt; M \u2264 50\uff0c0 &lt; N \u2264 1000\u3002<\/td><td>\u986f\u793a\u6700\u591a\u80fd\u591f\u88dd\u5165\u9019\u4e9b\u7bb1\u5b50\u7684\u5546\u54c1\u6578\u76ee\u3002\u82e5\u627e\u4e0d\u5230\u80fd\u88dd\u5165\u9019\u4e9b\u7bb1\u5b50\u7684\u5546\u54c1\uff0c\u8acb\u8f38\u51fa 0\u3002<\/td><\/tr><tr><td>4 10<br>30<br>40<br>50<br>25<br>15<br>16<br>30<br>18<br>19<br>20<br>21<br>25<br>24<br>17<\/td><td>7<\/td><\/tr><tr><td>3 9<br>20<br>10<br>10<br>3<br>8<br>3<br>7<br>9<br>3<br>5<br>8<br>5<\/td><td>7<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">ZeroJudge A455 \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>\u8a08\u7b97\u6240\u6709\u7bb1\u5b50\u7684\u627f\u8f09\u91cd\u91cf\u7e3d\u548c\uff0c\u4e26\u4e14\u5c07\u7269\u54c1\u9032\u884c\u6392\u5e8f\u3002\u5c07\u7269\u54c1\u4f9d\u5e8f\u76f8\u52a0\u4e26\u4e14\u5224\u65b7\u662f\u5426\u6703\u8d85\u904e\u6700\u5927\u627f\u8f09\u91cf\uff0c\u5982\u679c\u6703\u7684\u8a71\u5c31\u505c\u6b62\u8ff4\u5708\uff0c\u4e26\u4e14\u8981\u7d00\u9304\u76ee\u524d\u76f8\u52a0\u5230\u7b2c\u5e7e\u6a23\u5546\u54c1\u3002<\/p>\n\n\n\n<p>\u5ba3\u544a\u4e00\u500b\u56de\u50b3\u503c\u70ba bool \u7684 DFS\uff0c\u4e26\u4e14\u9810\u8a2d\u53c3\u6578\u70ba\u5169\u500b int\uff0c\u5206\u5225\u70ba num \u548c box\uff0c\u4ee3\u8868\u76ee\u524d\u8981\u62ff\u7684\u7269\u54c1\u5e8f\u5217\u865f\u548c\u8981\u5f9e\u54ea\u4e00\u500b\u7bb1\u5b50\u958b\u59cb\u9032\u884c\u5224\u65b7\u3002<\/p>\n\n\n\n<p>\u5728 DFS \u4e2d\uff0c\u5c0d\u6240\u6709\u7bb1\u5b50\u9032\u884c\u5224\u65b7\uff0c\u5982\u679c\u76ee\u524d\u7684 num \u5546\u54c1\u585e\u5f97\u4e0b\u9019\u500b\u7bb1\u5b50\uff0c\u5247\u5c07\u5546\u54c1\u585e\u5230\u9019\u500b\u7bb1\u5b50\u770b\u770b\uff0c\u4e26\u4e14\u518d\u6b21\u547c\u53eb DFS\uff0c\u53ea\u662f\u9019\u6b21 num \u8981 -1\uff0c\u4e26\u4e14 box \u8981\u4f7f\u7528 i\uff0c\u4e5f\u5c31\u662f\u76ee\u524d\u8dd1\u5230\u7684\u7bb1\u5b50\u7de8\u865f\u3002\u5982\u679c\u9019\u500b DFS \u56de\u50b3\u503c\u70ba true\uff0c\u5247\u53ef\u4ee5\u5728\u9084\u539f\u525b\u525b\u585e\u7684\u5546\u54c1\u5f8c\u76f4\u63a5 return true\u3002<\/p>\n\n\n\n<p>\u5982\u679c\u547c\u53eb DFS \u6642\u767c\u73fe num &lt; 0\uff0c\u4ee3\u8868\u5df2\u7d93\u628a\u6240\u6709\u5546\u54c1\u90fd\u5224\u65b7\u904e\u4e86\uff0c\u5c31\u53ef\u4ee5 return true\u3002\u7136\u5f8c\uff0c\u8981\u5ba3\u544a\u4e00\u500b int start = 0\uff0c\u5982\u679c box &gt; 0 &amp;&amp; items[num] == items[num+1]\uff0c\u4ee3\u8868\u76ee\u524d\u5546\u54c1\u548c\u4e0a\u4e00\u500b\u5546\u54c1\u5927\u5c0f\u4e00\u6a23\u4e14\u5df2\u7d93\u6709\u5224\u65b7\u904e\u5546\u54c1\u4e86\uff0c\u5c31\u5c07 start \u8a2d\u70ba box\uff0c\u4e26\u4e14\u5728\u5224\u65b7\u6240\u6709\u7bb1\u5b50\u6642\uff0c\u5c07 For\u8ff4\u5708 \u7684\u8d77\u9ede\u6539\u6210 start\u3002<\/p>\n\n\n\n<p>\u8dd1\u4e00\u500b\u5f9e 0 \u5230 N-1 \u7684 For\u8ff4\u5708\uff0c\u4e26\u4e14\u5224\u65b7 DFS(i+1, 0) \u662f\u5426\u70ba true\uff0c\u5982\u679c\u4e0d\u6210\u7acb\u5c31\u5c07\u8ff4\u5708 break\uff0c\u7b54\u6848\u5c31\u662f i+1\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u7bc4\u4f8b\u7a0b\u5f0f\u78bc\uff0d<a href=\"https:\/\/zerojudge.tw\/ShowProblem?problemid=a455\" target=\"_blank\" rel=\"noreferrer noopener\">ZeroJudge A455: \u5546\u54c1\u7279\u8ce3\u554f\u984c<\/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;algorithm&gt;\nusing namespace std;\n\nint M, N, ans = 0;\nint boxes[55] , items[1005];\n\nbool DFS(const int num, const int box) {\n    if(num &lt; 0) return true;\n    int start = 0;\n    if(box &gt; 0 && items[num] == items[num+1]) start = box;\n    for (int i = start; i&lt;M; i++) {\n        const int item = items[num];\n        if (boxes[i] - item &gt;= 0) {\n            boxes[i] -= item;\n            if (DFS(num-1, i)) {\n                boxes[i] += item;\n                return true;\n            }\n            boxes[i] += item;\n        }\n    }\n    return false;\n}\n\nint main() {\n    cin.sync_with_stdio(0);\n    cin.tie(0);\n    cin &gt;&gt; M &gt;&gt; N;\n    int totalBNox = 0;\n    for (int i = 0; i&lt;M; i++) {\n        cin &gt;&gt; boxes[i];\n        totalBNox += boxes[i];\n    }\n    int totalWeight = 0;\n    for (int i = 0; i&lt;N; i++) {\n        cin &gt;&gt; items[i];\n    }\n    sort(items, items+N);\n    int i;\n    for (i = 0; i&lt;N; i++) {\n        totalWeight += items[i];\n        if(totalWeight &gt; totalBNox) break;\n        if(!DFS(i, 0)) break;\n    }\n    cout &lt;&lt; i &lt;&lt; &quot;\\n&quot;;\n}\n\n\/\/ZeroJudge A455\n\/\/Dr. SeanXD<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u4e00\u500b\u5e74\u7d42\u5927\u62cd\u8ce3\u6d3b\u52d5\u4e2d\uff0c\u4e00\u5bb6\u8fea\u5316\u8857\u7684\u5546\u5e97\u63a8\u51fa\u4e86\u4e00\u500b\u7279\u8ce3\u6d3b\u52d5\uff0c\u8001\u95c6\u8aaa\u53ea\u8981\u4f60\u82b1\u9322\u8cb7 4 \u500b\u7bb1\u5b50\uff0c\u7b2c\u4e00\u500b\u7bb1\u5b50\u6700\u591a\u53ef\u88dd [&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":[21,20,8,34,9],"class_list":["post-1056","post","type-post","status-publish","format-standard","hentry","category-ioi-apcs","tag-dfs","tag-20","tag-8","tag-34","tag-9"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/posts\/1056","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/comments?post=1056"}],"version-history":[{"count":4,"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/posts\/1056\/revisions"}],"predecessor-version":[{"id":1061,"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/posts\/1056\/revisions\/1061"}],"wp:attachment":[{"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/media?parent=1056"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/categories?post=1056"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/tags?post=1056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}