{"id":408,"date":"2022-10-06T20:54:17","date_gmt":"2022-10-06T12:54:17","guid":{"rendered":"https:\/\/blog.cirno.fun\/?p=408"},"modified":"2024-09-12T09:31:20","modified_gmt":"2024-09-12T01:31:20","slug":"%e9%a2%98%e8%a7%a3-p1189-%e3%80%90search%e3%80%91","status":"publish","type":"post","link":"https:\/\/blog.sssn.tech\/?p=408","title":{"rendered":"\u9898\u89e3 P1189 \u3010`SEARCH`\u3011"},"content":{"rendered":"<p>\u672c\u6765\u4ee5\u4e3a\u662f\u4e2a\u5927\u6a21\u62df\uff0c\u6ca1\u60f3\u5230\u81ea\u5df1\u88ab\u5361\u4e86\u597d\u4e45&#8230;\u9898\u89e3\u5927\u4f6c\u90fd\u8bb2\u4e86\u526a\u679d\uff0c\u6211\u81ea\u6127\u4e0d\u5982\uff0c\u4f46\u662f\u4e2a\u4eba\u8ba4\u4e3a\u672c\u9898\u9664\u4e86\u526a\u679d\u8fd9\u9053\u9898\u4e5f\u6709\u5f88\u591a\u9700\u8981\u6ce8\u610f\u7684\u7ec6\u8282\uff0c\u8fd9\u7bc7\u9898\u89e3\u6211\u4f1a\u4e00\u6b65\u4e00\u6b65\u8bb2\u81ea\u5df1\u7684\u72af\u9519\u7ecf\u5386\uff0c\u5e0c\u671b\u5bf9\u4f60\u4eec\u6709\u6240\u5e2e\u52a9qwq<\/p>\n<p>\u9996\u5148\u6d4f\u89c8\u4e00\u904d\u9898\u610f\uff0c\u611f\u89c9\u5341\u5206\u53ef\u505a\uff0c\u5927\u4f53\u601d\u8def\u662f\u7528dfs\u6a21\u62df\u6bcf\u4e00\u6b21\u5f00\u8f66\u7ecf\u5386<\/p>\n<p>ps:\u4e3a\u4e86\u6392\u7248\u548c\u65b9\u4fbf\u9605\u8bfb\uff0c\u53ea\u7528\u5411\u5357\u4f5c\u4e3a\u4f8b\u5b50\uff0c\u4e0b\u540c<\/p>\n<p>pss\uff1a\u8fd9\u7bc7\u9898\u89e3\u4e0d\u6d89\u53ca\u526a\u679d\u5185\u5bb9<\/p>\n<pre><code class=\"language-cpp\">\/\/v[x][y]\u7528\u6765\u8bb0\u5f55\u8f66\u8f66\u7684\u4f4d\u7f6e\uff5e\nvoid dfs(int x,int y,int p){\n    \/\/\u4f4d\u4e8ex\uff0cy\uff0c\u6b63\u5728\u5904\u7406\u7b2cp\u6761\u547d\u4ee4\n    if(p&gt;k)  return ;\n    string heading=ord[p];\n    if(heading==&quot;SOUTH&quot;){\n        int fx=n-x;\/\/\u5bf9\u4e8e\u70b9x,y\uff0c\u6700\u591a\u5411\u4e0b\u8d70n-x\u683c\n        for(int i=1;i&lt;=fx;++i){\n            int nx=x+i;\/\/\u62d3\u5c55\u51fa\u7684\u70b9\u662fnx,y\n            if(a[nx][y]==&#039;X&#039;)\/\/\u5982\u679c\u78b0\u5230\u5899\uff0c\u8bf4\u660e\u5f80\u540e\u8d70\u4e0d\u4e86\u4e86\n                return;\n            v[x][y]=false;\n            v[nx][y]=true;\/\/\u8f66\u5b50\u4ecex,y\u5f00\u5230\u4e86nx,y\n            dfs(nx,y,p+1);\/\/\u5904\u7406\u4e0b\u4e00\u6761\u547d\u4ee4\n        }\n    }\n    ...\/\/\u4e09\u4e2a\u65b9\u5411\n}\n\n\/\/a[][]\u662f\u5730\u56fe\nint main(){\n    ...\n\n    \/\/\u8f93\u51fa\u7b54\u6848\n    for(int i=1;i&lt;=n;++i){\n        for(int j=1;j&lt;=m;++j){\n            if(!v[i][j]){\n                if(a[i][j]==&#039;*&#039;)\n                    putchar(&#039;.&#039;);\n                else    putchar(a[i][j]);\n            }\n            else    putchar(&#039;*&#039;);\n        }\n        puts(&quot;&quot;);\n    }\n    return 0;\n}\n<\/code><\/pre>\n<p>\u7136\u540e\u53d1\u73b0WA\u98de\u4e86hhhh\uff08<strong>\u4e0d\u8003\u8651\u526a\u679d<\/strong>\uff09<\/p>\n<p>\u4ed4\u7ec6\u7814\u7a76\u6837\u4f8b\u53d1\u73b0\uff0c\u5bf9\u4e8e\u6bcf\u4e2a\u547d\u4ee4\uff0c\u4e0d\u53ef\u4ee5\u4e0d\u505a\uff08\u5f53\u7136\uff09\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c<strong>\u5982\u679c\u8f66\u5728\u70b9x,y\u4e14\u51c6\u5907\u5411\u4e0b\u8d70\uff0c\u800c\u4e0b\u65b9\u7d27\u6328\u7740\u5899\uff0c\u5219\u8bf4\u660e\u8fd9\u79cd\u60c5\u51b5\u4e0d\u5b58\u5728<\/strong><\/p>\n<p>\u6211\u4eec\u6109\u5feb\u7684\u52a0\u4e2a\u7279\u5224w<\/p>\n<pre><code class=\"language-cpp\">if(heading==&quot;SOUTH&quot;){\n    int fx=n-x;\n    for(int i=1;i&lt;=fx;++i){\n        int nx=x+i;\n        if(a[nx][y]==&#039;X&#039;){\n            if(i==1)\/\/\u8d70\u4e00\u6b65\u5c31\u662f\u5899\uff0c\u8bf4\u660e\u8f66\u4e0d\u53ef\u80fd\u5728x,y\n                v[x][y]=false;\n            return;\n        }\n            v[x][y]=false;\n            v[nx][y]=true;\n            dfs(nx,y,p+1);\n        }\n    }\n}<\/code><\/pre>\n<p>\u8fc7\u4e86\u6837\u4f8b\uff0c\u611f\u89c9\u81ea\u5df1\u771f\u7684\u5f88\u4e0d\u9519\uff0c\u63d0\u4ea4\u8bd5\u8bd5<\/p>\n<p>&#8230;\u7136\u540e\u53c8WA\u98de\u4e86qwq<\/p>\n<p>\u53ea\u80fd\u4e0b\u5927\u6837\u4f8b&#8230;\u4e0b\u4e0b\u6765\u4e5f\u6ca1\u4ec0\u4e48\u601d\u8def\uff0c\u5de6\u601d\u53f3\u60f3\u89c9\u5f97\u81ea\u5df1\u5f88\u5bf9\u554a\uff0c\u4e8e\u662f\u624b\u73a9\u4e86\u51e0\u4e2a\u6570\u636e<\/p>\n<pre><code>5 5\nX....\n..X.X\n.*..X\n..X.X\nXXX.X\n5\nNORTH\nEAST\nSOUTH\nWEST\nNORTH\n<\/code><\/pre>\n<p>\u663e\u7136\u7b54\u6848\u662f<\/p>\n<pre><code>X*...\n**X.X\n....X\n..X.X\nXXX.X<\/code><\/pre>\n<p>\u800c\u4e0a\u9762\u7684\u4ee3\u7801\u8dd1\u51fa\u6765\u4e86<\/p>\n<pre><code>X....\n**X.X\n....X\n..X.X\nXXX.X<\/code><\/pre>\n<p>\u55ef\uff1f<\/p>\n<p>\u7ecf\u8fc7\u8c03\u8bd5\u53d1\u73b0\u4e86\u4e0a\u9762\u4ee3\u7801\u7684\u672c\u8d28\u9519\u8bef&#8230;<\/p>\n<blockquote>\n<p><strong>\u5728\u4e00\u6b21\u641c\u7d22\u4e2d\uff0c\u8f66\u5f00\u5230\u4e86\u70b9x,y\u5e76\u5c06\u5176\u8d4b\u503c\u4e3atrue\uff0c\u4f46\u662f\u5728\u56de\u6eaf\u540e\u6a21\u62df\u5176\u4ed6\u60c5\u51b5\u65f6\u5019\uff0c\u53c8\u5c06\u5176\u6539\u4e3a\u4e86false<\/strong><\/p>\n<\/blockquote>\n<p>orz\u6211\u7b28\u6b7b\u4e86&#8230;<\/p>\n<p>\u4e5f\u5c31\u662f\u8fd9\u91cc\u7684\u95ee\u9898<\/p>\n<pre><code class=\"language-cpp\">v[x][y]=false;\nv[nx][y]=true;\/\/\u8f66\u5b50\u4ecex,y\u5f00\u5230\u4e86nx,y,\u4f46\u662f\u5982\u679c\u6211\u4eec\u4e4b\u524d\u7684\u641c\u7d22\u8bc1\u660e\u4e86x,y\u672c\u8eab\u53ef\u4ee5\u62b5\u8fbe\uff0c\u56de\u6eaf\u56de\u6765\u65f6\u5019\u6211\u4eec\u53c8\u628a\u8f66\u5f00\u8d70\u4e86...\ndfs(nx,y,p+1);\/\/\u5904\u7406\u4e0b\u4e00\u6761\u547d\u4ee4\n<\/code><\/pre>\n<p>\u7ecf\u8fc7\u51e0\u5206\u949f\u601d\u8003\u53d1\u73b0\u4e86\u4e00\u4e2a\u7ed3\u8bba\uff1a <strong>\u5f53\u4e14\u4ec5\u5f53\u6267\u884c\u5b8c\u6240\u6709\u547d\u4ee4\u540e\uff0c\u8f66\u7684\u4f4d\u7f6e\u624d\u662f\u6709\u6548\u7684\uff0c\u5176\u4ed6\u65f6\u523b\u90fd\u662f\u4e2d\u95f4\u91cf<\/strong><\/p>\n<p>\u8fd9\u4e0d\u662f\u663e\u800c\u6613\u89c1\u5417<\/p>\n<p>\u4e8e\u662f\u6109\u5feb\u7684\u591a\u52a0\u4e00\u4e2a\u4e8c\u7ef4\u6570\u7ec4\u5427<\/p>\n<pre><code class=\"language-cpp\">if(heading==&quot;SOUTH&quot;){\n    int fx=n-x;\n    for(int i=1;i&lt;=fx;++i){\n        int nx=x+i;\n        if(a[nx][y]==&#039;X&#039;){\n            if(i==1)\n                v[x][y]=false;\n            return;\n        }\n        v[x][y]=false;\n        v[nx][y]=true;\n        if(p==k)\n            fin[nx][y]=true;\/\/\u53ea\u6709\u5728\u6b64\u65f6\u624d\u662f\u771f\u6b63\u7684\u53ef\u4ee5\u5230\u8fbe\n        dfs(nx,y,t+1);\n    }\n}<\/code><\/pre>\n<p>\u8f93\u51fa\u65f6\u5019\u8981\u6309\u7167fin\u7684\u6307\u5bfc\u8f93\u51fa&#8230;<\/p>\n<p>\u6d4b\u4e86\u4e00\u4e0b\uff0c\u7ec8\u4e8eA\u4e86\u6eda\u7c97&#8230;<\/p>\n<p>\u7136\u540e\u56de\u5934\u770b\u770b\u4ee3\u7801\uff0c\u597d\u50cf\u53d1\u73b0v\u6570\u7ec4\u6ca1\u7528\u4e0a\u554a\uff0c\u5f00\u59cb\u7684\u65f6\u5019\u601d\u8def\u5b9e\u5728\u662f\u9519\u7684\u5f7b\u5e95<\/p>\n<p>\u7cbe\u7b80\u4e00\u4e0b\u4ee3\u7801<\/p>\n<pre><code class=\"language-cpp\">if(heading==&quot;SOUTH&quot;){\n    int fx=n-x;\n    for(int i=1;i&lt;=fx;++i){\n        int nx=x+i;\n        if(a[nx][y]==&#039;X&#039;) return;\n        if(p==k)            fin[nx][y]=true;\n        dfs(nx,y,t+1);\n    }\n}<\/code><\/pre>\n<p>\u539f\u6765\u8fd9\u4e48\u7b80\u5355\u554a<\/p>\n<p>\u603b\u7ed3\u4e00\u4e0b\uff0c\u9047\u5230\u9898\u5148\u770b\u6e05\u9898\u610f\uff0c\u624b\u73a9\u4e0b\u6837\u4f8b\uff0c\u6253\u4ee3\u7801\u4e4b\u524d\u5148\u6a21\u62dforzz<\/p>\n<p><a href=\"https:\/\/www.luogu.org\/paste\/e6qmp8a0\">\u7531\u4e8e\u7248\u9762\u95ee\u9898\uff0c\u8fd9\u91cc\u8d34\u51fa\u5b8c\u6574\u7684\u4ee3\u7801\u5427<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6765\u4ee5\u4e3a\u662f\u4e2a\u5927\u6a21\u62df\uff0c\u6ca1\u60f3\u5230\u81ea\u5df1\u88ab\u5361\u4e86\u597d\u4e45&#8230;\u9898\u89e3\u5927\u4f6c\u90fd\u8bb2\u4e86\u526a\u679d\uff0c\u6211\u81ea\u6127 [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-408","post","type-post","status-publish","format-standard","hentry","category-2"],"_links":{"self":[{"href":"https:\/\/blog.sssn.tech\/index.php?rest_route=\/wp\/v2\/posts\/408","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.sssn.tech\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.sssn.tech\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.sssn.tech\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.sssn.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=408"}],"version-history":[{"count":1,"href":"https:\/\/blog.sssn.tech\/index.php?rest_route=\/wp\/v2\/posts\/408\/revisions"}],"predecessor-version":[{"id":738,"href":"https:\/\/blog.sssn.tech\/index.php?rest_route=\/wp\/v2\/posts\/408\/revisions\/738"}],"wp:attachment":[{"href":"https:\/\/blog.sssn.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=408"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.sssn.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=408"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.sssn.tech\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}