dsdsd

时间:2024-04-29 20:16:48

#include<iostream>

using namespace std;

#include<string.h>

#define max 205

char map[max][max];

long a[100000],step,sum,n,m,visited[max][max];

long directions[4][2]={{0,1},{1,0},{0,-1},{-1,0}};





//DFS 不用队列,不用结构体





bool DFS(int x,int y)

{

    int i,mx,my;

/*

    4 4 2

#.#.

.#.#

###.

.#.#

10

 

 */ int fls=0;



if(visited[x][y])return false;

visited[x][y]=1;

for(i=0;i<4;i++)

        {

            mx=x+directions[i][0];

            my=y+directions[i][1];



if(map[mx][my]=='.'||mx<1||mx>n||my<1||my>m||visited[mx][my])

{fls++;visited[mx][my]=1;}

else {



if(DFS(mx,my))fls++;

else return false;



}





}

if(fls==4){

cout<<"x: "<<x<<"   y:   "<<y<<endl;

sum++;

return true;

}

else return false;

    

    

}

















int main()

{





    long i,j,x,y,min,va;

    while(cin>>n>>m>>va)

    {





        memset(visited,0,sizeof(visited));

        sum=0;

        step=0;

        min=max;





        for(i=1;i<=n;i++)

        {

            

            for(j=1;j<=m;j++)

            {

                cin>>map[i][j];

                

            }

        }





       for(i=1;i<=n;i++)

  for(j=1;j<=m;j++)

        DFS(i,j);

cout<<sum*va<<endl;

       





    }

    return 0;

}

版权声明:本文为博主原创文章,未经博主允许不得转载。