#include <iostream> #include <vector> using namespace std; const int direction[4][2] = { {-1,0}, // 上 {1,0}, // 下 {0,1}, // 右 {0,-1} // 左 }; void helper(vector<vector<int>>& matrix, int x, int y, vector<vector<bool>>& visited) { int M = matrix.size(); for(int i=0;i<4;i++) { int tmp_x = x + direction[i][0]; int tmp_y = y + direction[i][1]; if(tmp_x<0 || tmp_y<0 || tmp_x>=M || tmp_y>=M) { continue; } if(matrix[tmp_x][tmp_y]==1 && !visited[tmp_x][tmp_y]) { visited[tmp_x][tmp_y] = true; helper(matrix, tmp_x, tmp_y, visited); } } } int main(int argc, char* argv[]) { int M = 0; while(cin>>M) { vector<vector<int>> matrix(M, vector<int>(M)); for(int i=0;i<M;i++) { for(int j=0;j<M;j++) { cin >> matrix[i][j]; } } int num = 0; vector<vector<bool>> visited(M, vector<bool>(M, false)); for(int i=0;i<M;i++) { for(int j=0;j<M;j++) { if(matrix[i][j]==1 && !visited[i][j]) { visited[i][j] = true; num++; helper(matrix, i, j, visited); } } } cout << num << endl; } return 0; }
点赞 3

相关推荐

点赞 评论 收藏
分享
牛客网
牛客企业服务