{"trustable":true,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript type\u003d\"text/javascript\" async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS_HTML-full\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003e一些蛇覆盖了一个\u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003en\u003c/i\u003e × \u003ci\u003em\u003c/i\u003e\u003c/span\u003e的网格(\u003cspan class\u003d\"tex-span\"\u003e1 ≤ \u003ci\u003en\u003c/i\u003e, \u003ci\u003em\u003c/i\u003e ≤ 50\u003c/span\u003e)。每个格子要么是一个障碍物,要么是蛇的一部分。每条蛇占据了一条折线 (拐角处只能水平和竖直连接),且至少占据两个格子。蛇与蛇之间不重叠,蛇也不会与自己重叠。每条蛇还必须满足以下两个条件中的一个:\u003c/p\u003e\u003cp\u003e • 两个端点所在的格子在网格的边界。这样的蛇至少长度为 2。\u003c/p\u003e\u003cp\u003e • 蛇构成一个环,即两个端点相邻 (垂直或水平)。注意这个条件意味着一条构成环的蛇至少需要占据 4 个格子。\u003c/p\u003e\u003cp\u003e现在我们给定一个网格,请你求出在满足前面所述的条件下覆盖所有空地,并使得端点在网格边界 (即不构成环) 的蛇尽量少。例如以下是几种合法的覆盖方案 (白色格子代表障碍物,黑色格子代表蛇所在的格子)。\u003c/p\u003e\u003cp\u003e\u003cimg class\u003d\"tex-graphics\" src\u003d\"CDN_BASE_URL/3d610eb9d5d79546486a82dead54f63e?v\u003d1713651306\" style\u003d\"max-width: 100.0%;max-height: 100.0%;\"\u003e\u003c/p\u003e\u003cp\u003e我们知道还有其他方案存在,但对于上图中的网格,不存在仅用一条或更少不构成环的蛇覆盖整个网格的方案。 \u003c/p\u003e"}},{"title":"Input","value":{"format":"HTML","content":"\u003cp\u003e输入文件第一行包括两个整数 \u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003en\u003c/i\u003e\u003c/span\u003e 和 \u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003em\u003c/i\u003e\u003c/span\u003e,分别表示网格的行数和列数。接下来 \u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003en\u003c/i\u003e\u003c/span\u003e 行,每行 \u003cspan class\u003d\"tex-span\"\u003e\u003ci\u003em\u003c/i\u003e\u003c/span\u003e 个字符描述了整个网格,其中井号 (\u003cspan class\u003d\"tex-font-style-tt\"\u003e#\u003c/span\u003e) 表示障碍物,点号 (\u003cspan class\u003d\"tex-font-style-tt\"\u003e.\u003c/span\u003e) 表示蛇所在的格子。\u003c/p\u003e"}},{"title":"Output","value":{"format":"HTML","content":"\u003cp\u003e输出一行,为合法覆盖方案中,端点在网格边界蛇的最少数量。如果不存在合法的方案,输出 \u003cspan class\u003d\"tex-font-style-tt\"\u003e-1\u003c/span\u003e。\u003c/p\u003e"}},{"title":"Examples","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e7 8\n#.....##\n...#....\n........\n..#.#.#.\n......#.\n...#..#.\n#.......\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e1\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n"}}]}