第一题: int main() {     int n;     cin >> n;     vector<vector<int>> a(n, vector<int>(n));     vector<vector<int>> neigh(n);     for (int i = 0; i < n; i++) {         for (int j = 0; j < n; j++) {             cin >> a[i][j];             if (a[i][j] >= 3)                 neigh[i].push_back(j);         }     }     vector<bool> flag(n, false);     int res = 0;     for (int i = 0; i < n; i++) {         if (flag[i] == false) {             res++;             flag[i] = true;             queue<int> q;             q.push(i);             while (!q.empty()) {                 int cur = q.front();                 q.pop();                 for (int j = 0; j < neigh[cur].size(); j++) {                     if (flag[neigh[cur][j]] == false) {                         flag[neigh[cur][j]] = true;                         q.push(neigh[cur][j]);                     }                 }             }         }     }     cout << res << endl;     system("pause");     return 0; }
点赞 评论

相关推荐

03-04 07:14
门头沟学院 C++
何木健一:去啥?你能考虑去就是思想有问题,当然一周到岗一天可以考虑一下😨
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务