图上dfs
2026-08-25 19:47:13
发布于:浙江
2阅读
0回复
0点赞
一道简单的图上DFS,直接套模板就行了。
#include<bits/stdc++.h>
using namespace std;
vector<int>g[5010]; //图
bool vis[5010]; //标记图上的点是否已访问
void dfs(int u){
vis[u]=1; //标记已访问
for(int v:g[u]){ //遍历点的邻居
if(!vis[v]){
dfs(v); //如果未被访问就遍历他的邻居
}
}
}
int main(){
int n,m,p;
cin>>n>>m>>p;
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
g[u].push_back(v); //存图
g[v].push_back(u);
}
while(p--){
int u,v;
cin>>u>>v;
dfs(u); //调用函数
if(vis[v])cout<<"Yes\n";
else cout<<"No\n";
memset(vis,0,sizeof vis); //将标记数组归零
}
}
这里空空如也





有帮助,赞一个