{"id":135,"date":"2017-03-05T09:28:56","date_gmt":"2017-03-05T09:28:56","guid":{"rendered":"http:\/\/www.luo666.com\/?p=135"},"modified":"2019-01-19T04:43:40","modified_gmt":"2019-01-19T04:43:40","slug":"topcoder-yetanotherrobotsimulation","status":"publish","type":"post","link":"http:\/\/www.luo666.com\/?p=135","title":{"rendered":"topcoder: YetAnotherRobotSimulation"},"content":{"rendered":"<p>\u53c8\u4e00\u6b21\u66b4\u529b\u6c42\u89e3\u88ab\u7f9e\u8fb1\uff0c\u8fd9\u4e2a\u9898\u611f\u89c9\u4e00\u5b9a\u53ef\u4ee5for\u5faa\u73af\u4ee3\u66ff\u9012\u5f52\uff0c\u7136\u800c\u7ecf\u9a8c\u503c\u4e0d\u8db3\uff08\u667a\u5546\u611f\u4eba\u7684\u59d4\u5a49\u8bf4\u6cd5\ud83d\ude22\uff09\u6ca1\u80fd\u5728\u653e\u5f03\u4e4b\u524d\u60f3\u51fa\u6765\uff0c\u4e8e\u662f\u518d\u6b21\u62ff\u6765\u4e3b\u4e49\uff1a<\/p>\n<p><!--more \u70b9\u6211\u5c55\u5f00\u4ee3\u7801\u548c\u89e3\u6790--><\/p>\n<pre class=\"lang:default decode:true \">class YetAnotherRobotSimulation:\n    def getMaximumProbability(self,L,x,y):\n        px = tuple(x)\n        py = tuple(y)\n        tl = len(px)\n        '''\n        tp = []\n        for i in range(0, tl):\n            tp.append((px[i],py[i]))\n        '''\n\n        tp = {}\n        for i in range(0, tl):\n            tp[(px[i],py[i])] = True\n\n        c = []\n        # \u4e00\u5f20\u5c4c\u70b8\u5929\u7684\u6392\u5217\u7ec4\u5408\u901f\u67e5\u8868\uff1b\u751f\u6210\u5b83\u9700\u8981\u4e00\u70b9\u6570\u5b66\u63a8\u5bfc\uff1a\n        # C(4,2) = C(3,1) + C(3,2)\n        # \u8fd9\u91cc\u9690\u542b\u4e86DP\u601d\u60f3\uff0c\u77e5\u9053\u4e86C(3,1)\u548cC(3,2)\u8fd9\u4e24\u79cd\u7ec4\u5408\u6570\uff0c\n        # \u90a3\u4e48\u73b0\u5728\u65b0\u52a0\u5165\u4e00\u4e2a\u5143\u7d20\uff0c\u57284\u4e2a\u5143\u7d20\u91cc\u9762\u6311\u51fa2\u4e2a\uff0c\u65e0\u975e\u662f\uff1a\n        # \u8981\u4e48\u7528\u65b0\u7684\u5143\u7d20\u548c\u539f\u6765\u6240\u67091\u4e2a\u5143\u7d20\u7684\u7ec4\u5408\u7ec4\u6210\u65b0\u76842\u5143\u7ec4\uff0c\n        # \u8981\u4e48\u4e0d\u9009\u8fd9\u4e2a\u65b0\u7684\uff0c\u76f4\u63a5\u7528\u539f\u67653\u4e2a\u91cc\u9762\u5df2\u6709\u76842\u5143\u7ec4\n        for i in range(0, 51):\n            c.append([])\n            for j in range(0, i+1):\n                if j == 0:\n                    c[i].append(1)\n                else:\n                    if j &gt; i-1:\n                        c[i].append(c[i-1][j-1])\n                    else:\n                        c[i].append(c[i-1][j-1]+c[i-1][j])\n\n        m = 0\n        u = r = l = d = 0\n        # \u53ea\u8981\u6309\u987a\u5e8f\u5217\u4e3e\u51fa\u6240\u6709\u7684\u6307\u4ee4seq\u7ec4\u5408\u5373\u53ef\uff0c\n        # \u6307\u4ee4\u4e4b\u95f4\u7684\u6392\u5e8f\u6839\u672c\u4e0d\u5f71\u54cd\u6700\u7ec8\u7ed3\u679c\n        for u in range(0, L+1):\n            for r in range(0, L-u+1):\n                for l in range(0, L-u-r+1):\n                    d = L-u-r-l\n                    s = 0\n                    pu = pr = pl = pd = 0\n                    # \u7531\u4e8e\u6307\u4ee4\u987a\u5e8f\u4e0d\u91cd\u8981\uff0c\n                    # \u90a3\u4e48\u53ea\u8981\u679a\u4e3e\u51fa\u6bcf\u79cd\u6307\u4ee4\u53ef\u80fd\u751f\u6548\u7684\u6b21\u6570\u5373\u53ef\n                    for pu in range(0,u+1):\n                        for pr in range(0,r+1):\n                            for pl in range(0,l+1):\n                                for pd in range(0,d+1):\n                                    # \u8fd9\u662f\u4e00\u4e2a\u5c0f\u4f18\u5316\uff0c\u4e8b\u5148\u51c6\u5907\u597d\u76ee\u6807\u96c6\u5408\u5b57\u5178\uff1am\n                                    # \u6bd4\u5728\u8fd0\u884c\u4e2d\u4e0d\u65ad\u7528in\u6765\u5224\u65ad\u8981\u5feb\u5f88\u591a\uff081\/4\uff09\n                                    #if (pr-pl, pu-pd) in tp:\n                                    if tp.get((pr-pl, pu-pd), False):\n                                        # \u867d\u7136\u751f\u6548\u6307\u4ee4\u7684\u4e2a\u6570\u51b3\u5b9a\u4e86\u6700\u7ec8\u5230\u8fbe\u7684\u4f4d\u7f6e\n                                        # \u4f46\u662f\u6211\u4eec\u8fd8\u662f\u9700\u8981\u77e5\u9053\u6709\u591a\u5c11\u79cd\u7ec4\u5408\u65b9\u5f0f\n                                        # \u56e0\u4e3a\u8981\u7b97\u6982\u7387\uff0c\u9700\u8981\u77e5\u9053\u5f53\u524d\u6307\u4ee4\u5e8f\u5217\u80fd\u6709\n                                        # \u591a\u5c11\u79cd\u65b9\u5f0f\u5230\u8fbe\u8fd9\u91cc\uff0c\u6240\u6709\u80fd\u591f\u5230\u8fbe\u76ee\u6807\n                                        # \u96c6\u5408\u7684\u65b9\u5f0f\u9664\u4ee5\u67d0\u4e2a\u6307\u4ee4\u5e8f\u5217\u53ef\u80fd\u7684\u6240\u6709\n                                        # \u751f\u6548\u5f62\u5f0f\uff081&lt;&lt;L\uff09\u5c31\u662f\u5b83\u7684\u5230\u8fbe\u76ee\u6807\u6982\u7387\n                                        s += c[u][pu]*c[r][pr]*c[l][pl]*c[d][pd]\n                                        m = max(s, m)\n\n        return float(m)\/(1&lt;&lt;L)<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u53c8\u4e00\u6b21\u66b4\u529b\u6c42\u89e3\u88ab\u7f9e\u8fb1\uff0c\u8fd9\u4e2a\u9898\u611f\u89c9\u4e00\u5b9a\u53ef\u4ee5for\u5faa\u73af\u4ee3\u66ff\u9012\u5f52\uff0c\u7136\u800c\u7ecf\u9a8c\u503c\u4e0d\u8db3\uff08\u667a\u5546\u611f\u4eba\u7684\u59d4\u5a49\u8bf4\u6cd5\ud83d\ude22\uff09\u6ca1\u80fd\u5728\u653e\u5f03\u4e4b\u524d\u60f3\u51fa\u6765\uff0c\u4e8e\u662f\u518d\u6b21\u62ff\u6765\u4e3b\u4e49\uff1a<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false,"jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[2],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7Dhki-2b","jetpack-related-posts":[],"_links":{"self":[{"href":"http:\/\/www.luo666.com\/index.php?rest_route=\/wp\/v2\/posts\/135"}],"collection":[{"href":"http:\/\/www.luo666.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.luo666.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.luo666.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.luo666.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=135"}],"version-history":[{"count":3,"href":"http:\/\/www.luo666.com\/index.php?rest_route=\/wp\/v2\/posts\/135\/revisions"}],"predecessor-version":[{"id":147,"href":"http:\/\/www.luo666.com\/index.php?rest_route=\/wp\/v2\/posts\/135\/revisions\/147"}],"wp:attachment":[{"href":"http:\/\/www.luo666.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.luo666.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=135"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.luo666.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}