#821. 认识新朋友
认识新朋友
题目描述
童童小学毕业升入初中,班级共有n人,学号分别为从1~n。其中童童的学号是3号。班级n位同学在一 张关系网里,关系网有m组好友关系。 现在童童想认识学号k的同学,但他非常害羞,没办法直接介绍自己,只能通过一些中间好友的介绍。请你编写程序统计共有多少种方案。
输入格式
第一行两个整数n和m,分别表示班级人数,好友组数。(4≤n≤40) 接下来有m行,每行2个整数u和v,表示一组好友学号。(1≤u,v≤n) 最后一行一个整数k,表示小k同学学号。(1≤k≤n,且k不是3)
输出格式
一个整数,表示总方案数。
样例
输入样例 1
6 7
6 3
3 1
4 3
1 4
2 5
4 2
1 5
5
输出样例 1
4
输入样例 2
6 6
2 1
2 5
2 6
1 5
3 1
4 5
4
输出样例 2
2
输入样例 3
9 12
1 3
1 2
2 4
2 7
3 4
3 5
4 6
4 8
5 6
6 9
7 8
8 9
9
输出样例 3
10
提示
提示:好友关系是双向的,所有好友关系网可以看做一个无向图。本题就是对无向图进行遍历,在遍历过程中找到顶点3和k之间的路径数量。 图的保存可以用邻接表也可以用邻接矩阵。下面的代码示例是邻接表的例子。