【洛谷】P5318 【深基18.例3】查找文献(dfs+bfs)

【洛谷】P5318 【深基18.例3】查找文献(dfs+bfs)_第1张图片

【洛谷】P5318 【深基18.例3】查找文献(dfs+bfs)_第2张图片 

解题思路:一道基于图的深搜广搜的模板题,详细见代码注释

下面附上AC代码

 

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define dbg(a)  cout<<#a<<" : "<ve[maxn];
struct Edge{
    int u,v;
};
vectoredge;
bool cmp(Edge a,Edge b)
{
    if(a.v!=b.v){
        return a.v q;   //用于存储横行被访问过但纵向没被访问过的节点
    q.push(x);  //入队
    vis[x]=1;   //标记被访问过
    printf("%d ",x);
    while(!q.empty())   //如果队列非空说明纵向还有点没搜
    {
        int fr=q.front();   //取出队头节点
        for(int i=0;i

 

你可能感兴趣的:(洛谷题解,#,图的遍历)