JZ初中OJ 1341. [南海2009初中] water

时间限制: 1000 ms  空间限制: 131072 KB  具体限制  

题目描述

全球气候变暖,小镇A面临水灾。于是你必须买一些泵把水抽走。泵的抽水能力可以认为是无穷大,但你必须把泵放在合适的位置,从而能使所有的水能流到泵里。小镇可以认为是N * M的矩阵。矩阵里的每个单元格都是一个‘a’- ‘z’小写字母,该小写字母表示该格子的高度,字母大的表示该单元格比较高,反之,表示该格子高度比较低。当前单元格的水可以流到上、下、左、右四个格子,但必须满足这些格子的高度是小于或者等于当前格子的高度。现在,给你一些N * M的矩阵,你至少要买多少个泵,才能把所有格子的水都能被抽走?

 

输入

 多组测试数据。

 第一行:K,表示有K组测试数据。 1 <= K <= 5.

 接下来有K组测试数据,每组测试数据格式如下:

     第一行:两个正数, N , M . 1 <= N, M <= 50,表示小镇的大小。

     接下来有N行,每行有M个小写字母,表示小镇的地图。

输出

共K行,每行对应一组数据。至少要买多少个泵,才能把所有格子的水都能抽走。

 

样例输入

 

样例输出

 
 

数据范围限制

 
 

提示















输入  

2

 5 5

 ccccc

 cbbbc

 cbabc

 cbbbc

 ccccc

 4 9

 cbabcbabc

 cbabcbabc

 cbabcbabc

 cbabcbabc

1

 11   11

 ccccccccccc

 caaaaaaaaac

 caaaaaaaaac

 caazpppzaac

 caapdddpaac

 caapdddpaac

 caapdddpaac

 caazpppzaac

 caaaaaaaaac

 caaaaaaaaac

 ccccccccccc

输出

1

2

 2
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int n,m;
 4 char a[53][53];
 5 bool bj[53][53];
 6 int xi[]={0,0,-1,1};
 7 int yi[]={1,-1,0,0};
 8 void dfs(int x,int y)
 9 {
10     bj[x][y]=true;
11     for(int i=0;i<4;i++)
12     {
13         int x1=x+xi[i];
14         int y1=y+yi[i];
15         if(x1<=n && x1>0 && y1<=m && y1>0 && bj[x1][y1]==false && a[x1][y1]>=a[x][y]){
16         dfs(x1,y1);
17     }
18 }}
19 int main()
20 {
21     int k=0;
22     cin>>k;
23     while(k--)
24     {
25         memset(bj,false,sizeof bj);
26         cin>>n>>m;
27         for(int i=1;i<=n;i++)
28             {
29                 for(int j=1;j<=m;j++)
30                 cin>>a[i][j];
31             }
32         int ans=0;
33         for(char c='a';c<='z';c++){
34             for(int i=1;i<=n;i++){
35                 for(int j=1;j<=m;j++){
36                     if(bj[i][j]==false && a[i][j]==c)
37                         {
38                             dfs(i,j);
39                             ans++;
40                         }
41                     }
42                 }
43             }
44         cout<<ans<<endl;
45     }
46 }
原文地址:https://www.cnblogs.com/dsanying/p/11305646.html