【XSY2525】Maze 2017多校

时间:2019-08-15
本文章向大家介绍【XSY2525】Maze 2017多校,主要包括【XSY2525】Maze 2017多校使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Description

考虑一个 N×M 的网格,每个网格要么是空的,要么是障碍物。整个网格四周都是墙壁(即第1行和第n行,第1列和第m列都是墙壁),墙壁有且仅有两处开口,分别代表起点和终点。起点总是在网格左边,终点总是在网格右边。你只能朝4个方向移动:上下左右。数据保证从起点到终点至少有一条路径。

从起点到终点可能有很多条路径,请找出有多少个网格是所有路径的必经网格。

Input

第一行包含两个整数 N,M ,表示网格 N 行 M 列。

接下来 N 行,每行 M 个字符,表示网格。'#'表示障碍物或墙壁,'.'表示空地。

Output

输出文件包含一个整数,必经点的个数。

Sample Input

7 7
#######
....#.#
#.#.###
#.....#
###.#.#
#.#....
#######

Sample Output

5

HINT

样例解释

(2, 1) (2, 2) (4, 4) (6, 6) (6, 7)

数据范围与约定

对于10%的数据, 3≤N,M≤50

对于50%的数据, 3≤N,M≤500

对于所有数据, 3≤N,M≤1000

前置知识——tarjan算法

看一下题。

题目中说了,要求所有路径的必经网格,这种描述好像跟某一种算法要求的结果相同,是什么呢?

——割点。

我们想一下,如果一个点是所有路径的必经网格,那么如果我们去掉这个点会怎么样?

——起点和终点不联通了。

这就很像我们的割点和割边了。

原文地址:https://www.cnblogs.com/2017gdgzoi44/p/11360542.html