通过代码:
#include <bits/stdc++.h> using namespace std; int r, s, maxn; char a[21][21]; int vis[27]; bool avl[27]; const int dx[] = { -1, 0, 1, 0 }; const int dy[] = { 0, -1, 0, 1 }; void dfs(int rx, int ry) { avl[a[rx][ry] - 'A'] = false; vis[a[rx][ry] - 'A'] ++; bool searched = false; for(int i = 0; i < 4; i ++) { int nx = rx + dx[i]; int ny = ry + dy[i]; if(nx > 0 && nx <= r && ny > 0 && ny <= s && avl[a[nx][ny] - 'A'] == true) { searched = true; dfs(nx,ny); } } if(searched == false) { int sum = 0; for(int i = 0; i < 26; i ++) if(vis[i]) sum ++; maxn = max(maxn, sum); } avl[a[rx][ry] - 'A'] = true; vis[a[rx][ry] - 'A'] --; } int main() { memset(avl, true, sizeof(avl)); scanf("%d%d\n", &r, &s); for(int i = 1; i <= r; i ++ && scanf("%c", &a[0][0])) for(int j = 1; j <= s; j ++) scanf("%c", &a[i][j]); dfs(1, 1); printf("%d", maxn); return 0; }
1212:LETTERS
最新推荐文章于 2021-04-02 22:34:27 发布