传送门
class Solution {
public:
int ans=0;
vector<vector<int>> edges=vector<vector<int>>(20);
int zong;
int m;
void dfs(int cp, int step)
{
if(step==zong)
{
if(cp==m-1)
{
ans++;
}
return;
}
for (int np:edges[cp])
{
dfs(np,step+1);
}
}
int numWays(int n, vector<vector<int>>& relation, int k) {
zong=k;
m=n;
for (int i=0;i<n;i++)
{
edges[relation[i][0]].push_back(relation[i][1]);
}
dfs(0,0);
return ans;
}
};