描述
有n个城市,城市分别用数字1~n表示,现在所处的城市为1号,有些城市之间没有直接相连的路,有些城市之间有直接相连的路,这些路都是双向的,当然也可能有多条。现在统计从1号城市到达k号城市总方法数。
输入描述
第一行两个整数n和e,分别表示n个城市,e条道路。(4<=n<=10)
接下来有e行,每行两个整数a和b,表示a和b之间有路。
最后一行一个整数k,表示k号城市。
输出描述
一个整数,表示从1号城市到达k号城市总方法数。
#include<bits/stdc++.h>
using namespace std;
int n,e,a,b,k;
bool v[11];
vector<int> g[11];
int dfs(int c){
if(c==k){
return 1;
}
int t=0;
v[c] = 1;
for(int i : g[c]){
if(!v[i]){
t+=dfs(i);
}
}
v[c] = 0;
return t;
}
int main(){
cin>>n>>e;
for(int i=0;i<e;i++){
cin>>a>>b;
g[a].push_back(b);
g[b].push_back(a);
}
cin>>k;
int total= dfs(1);
cout<<total;
return 0;
}