链接:LCP 07. 传递信息
题解:
class Solution {
public:
int numWays(int n, vector<vector<int>>& relation, int k) {
std::unordered_map<int, std::set<int>> edges;
for (int i = 0; i < relation.size(); ++i) {
edges[relation[i][0]].insert(relation[i][1]);
}
queue<int> que;
que.push(0);
int step = 0;
while (!que.empty() && step < k) {
int len = que.size();
++step;
for (int i = 0; i < len; ++i) {
int f = que.front();
que.pop();
for (auto ite : edges[f]) {
que.push(ite);
}
}
}
int cnt = 0;
if (step == k) {
while (!que.empty()) {
int f = que.front();
que.pop();
if (f == n-1) {
++cnt;
}
}
}
return cnt;
}
};