1. 程式人生 > >位元組跳動筆試—抖音紅人

位元組跳動筆試—抖音紅人

題目描述:
這裡寫圖片描述
這裡寫圖片描述
解題思路:圖的遍歷

#include<bits/stdc++.h>
using namespace std;

bool bfs(vector<vector<int>>& v, vector<bool>& test, int val) {
    queue<int> q;
    q.push(val);
    int cnt = 1;
    int num = v.size();
    test[val] = true;
    while (!q.empty() && cnt < num) {
        int
tmp = q.front(); q.pop(); for (int e : v[tmp]) { if (!test[e]) { ++cnt; test[e] = true; q.push(e); } } } return cnt == num; } int main(){ int n,m; cin >> n >> m; int a, b; vector
<vector<int>>
v(n); vector<bool> test(n, false); for (int i = 0; i < m; ++i) { cin >> a >> b; v[b-1].push_back(a-1); } int cnt = 0; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) test[j] = false; cnt += bfs(v, test, i); } cout
<< cnt << endl; return 0; }