LCP.07传递信息
可以利用有向图的深度优先搜索遍历解题。
void dfs(int n, int** relation, int relationSize, int k,int *ans,int people)//people表示传递给了第几个人
{
if(k==0) //递归终止的条件 如果信息传递给了最后一个人,方案数+1
{
if(people == n-1)
(*ans)++;
return;
}
for(int i=0;i<relationSize;i++)
{
if(relation[i][0] == people) //people表示当前信息传给了第几个人,循环找到这个人,对这个人进行DFS
{
dfs(n,relation,relationSize,k-1,ans,relation[i][1]);
}
}
return;
}
int numWays(int n, int** relation, int relationSize, int* relationColSize, int k){
int ans=0; //满足条件的方案数目
dfs(n,relation,relationSize,k,&ans,0);
return ans;
}```