{"id":402,"date":"2024-04-29T16:48:15","date_gmt":"2024-04-29T08:48:15","guid":{"rendered":"https:\/\/seanxd.com\/?p=402"},"modified":"2024-04-29T16:48:17","modified_gmt":"2024-04-29T08:48:17","slug":"zerojudge-a586","status":"publish","type":"post","link":"https:\/\/seanxd.com\/zh\/zerojudge-a586\/","title":{"rendered":"ZeroJudge A586: \u6377\u904b\u8a08\u50f9\u554f\u984c"},"content":{"rendered":"\n\n\n<p class=\"\">\u300c\u5929\u9f8d\u570b\u300d\u70ba\u4e86\u4fc3\u9032\u89c0\u5149\uff0c\u63a8\u51fa\u6377\u904b\u89c0\u5149\u5730\u5716\u3002\u53ea\u8981\u6301\u6709\u89c0\u5149\u8b77\u7167\u8005\u642d\u4e58\u6377\u904b\u5c07\u6703\u6709\u7279\u5225\u7684\u512a\u5f85\uff0c\u4e26\u4f9d\u7167\u4e0b\u5217\u4e09\u7a2e\u8a08\u8cbb\u898f\u5b9a\u6536\u8cbb\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"\">\u57fa\u672c\u7968\u50f9\u5341\u5143\u3002<\/li>\n\n\n\n<li class=\"\">\u6bcf\u7d93\u904e\u4e09\u7ad9\u7968\u50f9\u52a0\u4e94\u5143\u3002<\/li>\n\n\n\n<li class=\"\">\u8f49\u4e58\u4e0d\u540c\u6377\u904b\u8def\u7dda\u52a0\u4e94\u5143\u3002<\/li>\n<\/ol>\n\n\n\n<p class=\"\">\u4ee5\u4e0b\u5716\u70ba\u4f8b\uff0c\u82e5\u8d77\u9ede\u70ba B1\uff0c\u7d42\u9ede\u70ba G2\uff0c\u82e5\u642d\u4e58\u8def\u7dda\u70ba\uff1a B1-B2-B3-B4-G1-G2\uff0c\u6240\u9700\u7968\u50f9\u70ba 20\u5143(=10+51+5\uff0c\u70ba\u57fa\u672c\u7968\u50f9 10\u5143+\u7d93\u904e 5\u7ad9\u9700 5\u5143+\u8f49\u4e58 5\u5143)\uff1b\u82e5\u642d\u4e58\u8def\u7dda\u70ba\uff1a B1-B2-R1-R2-R3-G2\uff0c\u6240\u9700\u7968\u50f9\u70ba 25\u5143(=10+51+5*2\uff0c\u70ba\u57fa\u672c\u7968\u50f9 10\u5143+\u7d93\u904e5\u7ad9\u9700 5\u5143 +\u8f49\u4e58\u5169\u7a2e\u8def\u7dda 10\u5143)\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full nfd-wb-animate nfd-wb-zoom-in-short\"><img decoding=\"async\" width=\"290\" height=\"231\" loading=\"lazy\" src=\"https:\/\/seanxd.com\/wp-content\/uploads\/2024\/04\/Subway-Fare-Problem.png\" alt=\"ZeroJudge A586\n\u984c\u76ee\u6558\u8ff0\" class=\"wp-image-403\"\/><\/figure>\n\n\n\n<p class=\"\">\u73fe\u5728\u8acb\u4f60\u8a2d\u8a08\u4e00\u500b\u7a0b\u5f0f\uff0c\u7576\u904a\u5ba2\u6c7a\u5b9a\u597d\u6377\u904b\u7684\u8d77\u9ede\u53ca\u7d42\u9ede\u6642\uff0c\u80fd\u70ba\u6bcf\u4e00\u500b\u4f86\u6b64\u89c0\u5149\u7684\u904a\u5ba2\u8a08\u7b97\u7968\u50f9 (\u82e5\u6709\u591a\u689d\u8def\u7dda\u53ef\u5f9e\u8d77\u9ede\u62b5\u9054\u7d42\u9ede\u6642\uff0c\u8acb\u8a08\u7b97\u51fa\u6700\u4fbf\u5b9c\u7684\u7968\u50f9)\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 nfd-wb-animate nfd-wb-fade-in-bottom-short\"><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\u6709\u4e00\u500b\u6b63\u6574\u6578 N (1 \u2264 N \u2264 500)\uff0cN \u4ee3\u8868\u63a5\u4e0b\u4f86\u6709 N \u7b46\u76ee\u524d\u6377\u904b\u7ad9\u7684\u8cc7\u8a0a\u3002<br>\u81ea\u7b2c\u4e8c\u884c\u5230\u7b2c N+1\u884c\uff0c\u6bcf\u4e00\u884c\u4ee3\u8868\u6377\u904b\u4efb\u610f\u5169\u7ad9\u9023\u901a\u7684\u8cc7\u8a0a\uff0c\u6bcf\u4e00\u7ad9\u547d\u540d\u70ba\u4e00\u500b\u5927\u5beb\u82f1\u6587\u5b57\u6bcd\u5f8c\u63a5\u6578\u5b57\uff0c\u5176\u4e2d\u958b\u982d\u7684\u5927\u5beb\u82f1\u6587\u5b57\u6bcd\u4ee3\u8868\u6240\u5728\u8def\u7dda\uff0c\u6578\u5b57 m\u70ba\u5c0f\u65bc\u7b49\u65bc 100 \u7684\u6b63\u6574\u6578 (1 \u2264 M \u2264 100)\u3002\u6b64\u5169\u7ad9\u4e2d\u9593\u4ee5\u4e00\u500b\u7a7a\u683c\u5340\u5206\uff0c\u5169\u7ad9\u4e4b\u9593\u96d9\u5411\u90fd\u53ef\u4ee5\u9023\u901a\u3002<br>\u7b2c N+2 \u884c\u4ee3\u8868\u6240\u8981\u898f\u5283\u8def\u5f91\u7684\u8d77\u9ede\u8207\u7d42\u9ede\uff0c\u4e2d\u9593\u4ee5\u4e00\u500b\u7a7a\u683c\u5340\u5206\u3002<\/td><td>\u8acb\u8f38\u51fa\u4e00\u500b\u6578\u503c\uff0c\u4ee3\u8868\u898f\u5283\u7684\u8d77\u9ede\u5230\u7d42\u9ede\u4e4b\u6700\u4fbf\u5b9c\u7968\u50f9\u3002<\/td><\/tr><tr><td>11<br>B1  B2<br>B2  B3<br>B3  B4<br>B4  B5<br>B4  G1<br>G1  G2<br>G2  G3<br>R1  R2<br>R2  R3<br>B2  R1<br>R3  G2<br>B1  G2<\/td><td>20<\/td><\/tr><tr><td>12<br>R1  R2<br>R2  R3<br>R3  R4<br>R4  R5<br>R5  R6<br>R6  R7<br>R7  B1<br>R7  Y1<br>Y1  B1<br>Y1  R1<br>Y1  G1<br>G1  R1<br>G1  B1<\/td><td>20<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">ZeroJudge A586 \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 class=\"\">\u4f7f\u7528 <strong>Map \u4f86\u7d00\u9304\u6bcf\u500b\u8eca\u7ad9\u53ef\u4ee5\u5230\u54ea\u5e7e\u500b\u8eca\u7ad9<\/strong>\uff0c\u53ef\u4ee5\u4f7f\u7528 <strong>Vector \u7684\u65b9\u5f0f\u4f86\u5b58\u8eca\u7ad9<\/strong>\uff0c\u56e0\u70ba\u662f\u96d9\u5411\u7684\uff0c\u6240\u4ee5\u76ee\u7684\u5730\u8eca\u7ad9\u4e5f\u8981\u5b58\u8aaa\u53ef\u4ee5\u5230\u8d77\u9ede\u8eca\u7ad9\u3002<strong>\u4f7f\u7528 BFS \u7684\u65b9\u5f0f\u5c0b\u627e\u6700\u4f4e\u91d1\u984d\u7684\u8def\u7dda<\/strong>\uff0c\u53ef\u4ee5<strong>\u4f7f\u7528 Map \u5c07\u6bcf\u500b\u8eca\u7ad9\u7684\u91d1\u984d\u5b58\u8d77\u4f86<\/strong>\uff0c\u5982\u679c\u4e0b\u6b21\u6709\u8d70\u5230\u76f8\u540c\u7684\u8eca\u7ad9\u5c31\u9032\u884c\u6bd4\u8f03\u770b\u54ea\u4e00\u500b\u65b9\u6848\u7684\u91d1\u984d\u8f03\u4f4e\u3002\u6700\u5f8c\u8f38\u51fa\u7d42\u9ede\u8eca\u7ad9\u7684 Map \u503c\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=a586\" target=\"_blank\" rel=\"noreferrer noopener\">ZeroJudge A586: \u6377\u904b\u8a08\u50f9\u554f\u984c<\/a><\/h3>\n\n\n\n<div class=\"hcb_wrap nfd-wb-animate nfd-wb-reveal-right nfd-delay-50\"><pre class=\"prism line-numbers lang-cpp\" data-lang=\"C++\"><code>#include &lt;iostream&gt;\n#include &lt;map&gt;\n#include &lt;vector&gt;\nusing namespace std;\n\nint N;\nmap&lt;string, vector&lt;string&gt;&gt;MAP;\nmap&lt;string, pair&lt;int, int&gt;&gt;info;\n\nvoid BFS(vector&lt;string&gt;start)\n{\n    if (start.size() == 0) return;\n    vector&lt;string&gt;newStart;\n    for (int i = 0; i&lt;start.size(); i++)\n    {\n        vector&lt;string&gt;next = MAP[start[i]];\n        for (int j = 0; j&lt;next.size(); j++)\n        {\n            int step = info[start[i]].first+1, line = info[start[i]].second;\n            if (start[i][0] != next[j][0]) line++;\n            if (info[next[j]].first == 0 && info[next[j]].second == 0)\n            {\n                info[next[j]].first = step;\n                info[next[j]].second = line;\n                newStart.push_back(next[j]);\n                continue;\n            }\n            int oldmoney = 5*(info[next[j]].first\/3) + 10 + (5*info[next[j]].second);\n            int newmoney = 5*(step\/3) + 10 + (5*line);\n            if (newmoney &lt; oldmoney)\n            {\n                info[next[j]].first = step;\n                info[next[j]].second = line;\n                newStart.push_back(next[j]);\n                continue;\n            }\n        }\n    }\n    BFS(newStart);\n}\n\nint main() {\n    cin.sync_with_stdio(0);\n    cin.tie(0);\n    cin &gt;&gt; N;\n    for (int i = 0; i&lt;N; i++)\n    {\n        string a, b;\n        cin &gt;&gt; a &gt;&gt; b;\n        MAP[a].push_back(b);\n        MAP[b].push_back(a);\n    }\n    string start, finish;\n    cin &gt;&gt; start &gt;&gt; finish;\n    info[start].first = 0;\n    info[start].second = 0;\n    vector&lt;string&gt;v;\n    v.push_back(start);\n    BFS(v);\n    cout &lt;&lt; 5*(info[finish].first\/3) + 10 + (5*info[finish].second) &lt;&lt; &quot;\\n&quot;;\n}\n\n\/\/ZeroJudge A586\n\/\/Dr. SeanXD<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u300c\u5929\u9f8d\u570b\u300d\u70ba\u4e86\u4fc3\u9032\u89c0\u5149\uff0c\u63a8\u51fa\u6377\u904b\u89c0\u5149\u5730\u5716\u3002\u53ea\u8981\u6301\u6709\u89c0\u5149\u8b77\u7167\u8005\u642d\u4e58\u6377\u904b\u5c07\u6703\u6709\u7279\u5225\u7684\u512a\u5f85\uff0c\u4e26\u4f9d\u7167\u4e0b\u5217\u4e09\u7a2e\u8a08\u8cbb\u898f\u5b9a\u6536 [&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":[29],"tags":[30,14,23,20,11],"class_list":["post-402","post","type-post","status-publish","format-standard","hentry","category-zerojudge-","tag-bfs","tag-map","tag-pair","tag-20","tag-11"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/posts\/402","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=402"}],"version-history":[{"count":2,"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/posts\/402\/revisions"}],"predecessor-version":[{"id":405,"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/posts\/402\/revisions\/405"}],"wp:attachment":[{"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/media?parent=402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/categories?post=402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/seanxd.com\/zh\/wp-json\/wp\/v2\/tags?post=402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}