寒假D03 广搜(BFS)
2026-02-13 14:57:27
发布于:浙江



备注:如想查看生活日常请查阅*@…?"白羊&天龙%“!…#¥的神秘杭州年前最晚D03日记!!!
1.1
广搜大部分为模板要背模板
最短路径等类似题目模板如下:
#include<bits/stdc++.h>
using namespace std;
int dis[MAXN];
void dfs(int start ,int t){
memset(dist,-1,sizeof dis);
queue<int>q;
dis[start]=0;
q.push(start);
while(!q.empty()){
int u=q.front();
q.pop();
if(ut) break;
for(每个可能的下一个状态){
if(合法(v&&dis[v]-1){
dis[v]=dis[u]+1;
q.push(v);
}
}
}
}
此为模板
1.2
最短路径经典题目答案
#include<bits/stdc++.h>
using namespace std;
int n,m,start;
vector<int>ve[105];
bool vis[105];
int dis[105];
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int x,y;
cin>>x>>y;
ve[x].push_back(y);
ve[y].push_back(x);
}
cin>>start;
queue<int>q;
q.push(start);
vis[start]=1;
dis[start]=0;
while(!q.empty()){
int u=q.front();
q.pop();
for(int i:ve[u]){//遍历相邻点
if(vis[i]==0){//没有标记过
q.push(i);//加入队列
vis[i]=1;//标记该点
dis[i]=dis[u]+1; //更新最短路
}
}
}
for(int i=1;i<=n;i++){
cout<<dis[i]<<" ";
}
return 0;
}
这里空空如也















有帮助,赞一个