zoukankan      html  css  js  c++  java
  • P5318 【深基18.例3】查找文献(dfs、bfs)

    水题,图的dfs和bfs,小的优先,排下序,收获是知道vector的clear不能用来数组清零。标记数组还是用普通数组,memset清空比较妥当。

    #include<bits/stdc++.h>
    using namespace std;
    int n,m,a,b;
    const int maxn=1e5+5;
    vector<int>v[maxn];
    int vis[maxn];
    queue<int>q;
    void dfs(int k){
        vis[k]=1;
        cout<<k<<" ";
        for(int i=0;i<v[k].size();i++){
            if(vis[v[k][i]]==0){
                dfs(v[k][i]);
            }
        }
    }
    void bfs(int k){
        q.push(1);
        while(!q.empty()){
            int t=q.front();q.pop();
            vis[t]=1;
            cout<<t<<" ";
            for(int i=0;i<v[t].size();i++){
                if(vis[v[t][i]]==0){
                    q.push(v[t][i]);
                    vis[v[t][i]]=1;
                }
            }
        }
    }
    int main()
    {
        cin>>n>>m;
        for(int i=0;i<m;i++){
            cin>>a>>b;
            v[a].push_back(b);
        }
        for(int i=1;i<=n;i++)sort(v[i].begin(),v[i].end());
        memset(vis,0,sizeof(vis));
        dfs(1);cout<<endl;
        memset(vis,0,sizeof(vis));
        bfs(1);cout<<endl;
        return 0;
       // bfs(1);
    }
    /*
    8 9
    2 5
    2 6
    3 7
    4 7
    4 8
    7 8
    1 2
    1 3
    1 4
    
    */
  • 相关阅读:
    选择排序
    快速排序
    希尔排序
    直接插入排序
    判断三角形的类型
    Unicode编码下: CString 转换为 string
    GDAL中GDALDataType中值与其在C++中数据类型对应
    ftell()
    fseek()
    fopen_s()
  • 原文地址:https://www.cnblogs.com/mohari/p/12909710.html
Copyright © 2011-2022 走看看