@Yezi.press
图的邻接表 DFS 搜索模板
DFS 搜索无权图中从起点到终点的简单路径数量(邻接表)
算法模板发布于 2026/08/22编辑于 2026/08/23#图#dfs#邻接表
C++35 行711 Bytes
#include <bits/stdc++.h>
using namespace std;
const int N = 1005; // 根据题目点的数量范围调整
vector<int> adj[N]; // 邻接表(有权图需要使用结构体)
bool vis[N];
int step[N];
int n, m, st, ed, cnt;
void dfs(int u) {
if (u == ed) { cnt++; return; } // 到终点
for (int v: adj[u]) {
if (vis[v]) continue;
vis[v] = 1;
dfs(v);
vis[v] = 0;
}
}
int main() {
cin >> n >> m >> st >> ed;
while (m--) {
int u, v;
cin >> u >> v;
adj[u].push_back(v);
// 无向图需要反向边
// adj[v].push_back(u);
}
vis[st] = 1;
dfs(st);
cout << cnt;
return 0;
}