poj2386.cpp

    xiaoxiao2021-04-17  47

    //这道题改了无数遍结果一直输出零,由于题目输入较长,我们可以取一个3乘3测试,技巧啊!! //这还是一道简单题。略微有坑点。。 #include<cstdio> #include<iostream> #include<algorithm> #include<cmath> #include<string> #include<stdlib.h> using namespace std ; int N , M ; char filed [ 102 ][ 102 ]; void dfs ( int x , int y ) //DFS的精髓 { filed [ x ][ y ] = '.' ; //替换现在位置 for ( int dx =- 1 ; dx <= 1 ; dx ++ ){ for ( int dy =- 1 ; dy <= 1 ; dy ++ ){ int nx = x + dx ; int ny = y + dy ; if ( 0 <= nx && nx <= N && 0 <= ny && ny <= M && filed [ nx ][ ny ] == 'W' ) dfs ( nx , ny ); } } } int main () { scanf ( "%d %d" , & N , & M ); getchar (); for ( int i = 0 ; i < N ; i ++ ){ for ( int j = 0 ; j < M ; j ++ ){ scanf ( "%c" , & filed [ i ][ j ]); //我这里的输入形式有问题‘ } getchar (); //加不加都可以,加上总没错吧!! } int count = 0 ; for ( int i = 0 ; i < N ; i ++ ){ for ( int j = 0 ; j < M ; j ++ ){ if ( filed [ i ][ j ] == 'W' ) { dfs ( i , j ); count ++ ;} } } printf ( "%d/n" , count ); return 0 ; }
    转载请注明原文地址: https://ju.6miu.com/read-674216.html

    最新回复(0)