题目
LCP07.传递信息
本题可以考虑从邻接矩阵的深度优先遍历(DFS)、邻接矩阵的广度优先遍历(BFS)入手求解。
首先需要将节点之间的关系存储到邻接矩阵中,之后采用BFS或DFS求解。
关于邻接矩阵的构建,其实vector一维数组就可以实现。
BFS:
需要借助一个队列存放遍历到的节点,首先将节点0入队,接着while()循环,出循环的条件是队列为空或者已经走过的节点数大于题目规定的轮数k。循环体内首先步数steps+1,之后取出队首元素,入队队首元素可以到达的元素。
之后如果走过的步数steps为轮数k,那么判断队列内的元素有多少个为最后一个节点的编号,即为总的路径数。
DFS:
沿着一个节点所能到达的节点一直走下去,在走了k步后,如果能到达最后一个节点则路径数+1。