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

相关推荐

求求要我吧:你教育经历放在下面干什么,而且27届还是28届啊()另外看你简历有两面,通常来说投递运营岗位一面简历就够了。另外个人总结要写也放在简历最下面,然后你奖项那里是2019年的哇哈哈,那你究竟投递的是社招还是实习?实习的话你是第几届是肯定要写出来的,社招的话你这个工作经历又太短太花了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务