90分,求大佬指点!万分感谢!

P2372 yyy2015c01挑战算周长

~~布灰~~
by 这有只蒟蒻呢_ @ 2021-06-05 15:20:16


```#include <iostream> using namespace std; int n,m,x1,y1,ans; bool vis[25][25]; char c[25][25]; void dfs(int x,int y){ if(x < 1 || x > n || y < 1 || y > m) return; if(vis[x][y]) return; if(c[x][y] != 'X') return; vis[x][y] = 1; dfs(x + 1,y - 1); dfs(x - 1,y + 1); dfs(x,y + 1); dfs(x,y - 1); dfs(x + 1,y + 1); dfs(x - 1,y); dfs(x - 1,y - 1); dfs(x + 1,y); } int main(){ cin >> n >> m >> x1 >> y1; for(int i = 1;i <= n;i++) for(int j = 1;j <= m;j++) cin >> c[i][j]; dfs(x1,y1); for(int i = 1;i <= n;i++){ for(int j = 1;j <= m;j++){ if(vis[i][j]){ ans += 4; if(vis[i - 1][j]) ans--; if(vis[i + 1][j]) ans--; if(vis[i][j + 1]) ans--; if(vis[i][j - 1]) ans--; } } } cout << ans; return 0; }
by LYM20114 @ 2022-06-14 14:03:06


|