2 条题解

  • 0
    @ 2026-4-19 18:47:21

    #include #include<math.h> #include<stdio.h> #include #include #include #include<string.h> #include #include #include #include #include #include #include using namespace std; #define LL long long const int N = 1e5 + 10; const int INF = 0x3f3f3f3f; int R, C; vector board; int max_count = 0; bool visited[26] = { false }; void dfs( int x , int y, int count) { max_count = max( max_count , count ); int dx[] = { -1 , 1 , 0 , 0 }; int dy[] = { 0 , 0 , -1 , 1 };
    for ( int i = 0 ; i < 4 ; i++ ) { int nx = x + dx[i]; int ny = y + dy[i]; if ( nx >= 0 && nx < R && ny >= 0 && ny < C ) { char c = board[nx][ny]; if ( !visited[ c - 'A' ] ) { visited[ c - 'A' ] = true; dfs( nx , ny , count + 1 ); visited[ c - 'A' ] = false; } } } } int main() { cin >> R >> C; board.resize(R); for ( int i = 0 ; i < R ; i++ ) { cin >> board[i]; } visited[ board[0][0] - 'A' ] = true; dfs( 0 , 0 , 1 );
    cout << max_count << endl; return 0; }

    信息

    ID
    1349
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    91
    已通过
    27
    上传者