社区讨论

求助,后四个点re,不知道为什么

P5318【深基18.例3】查找文献参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lod0yokb
此快照首次捕获于
2023/10/30 22:58
2 年前
此快照最后确认于
2023/11/05 09:16
2 年前
查看原帖
用vector存图和正常的dfs bfs
CPP
#include<bits/stdc++.h>
using namespace std;

vector<int> v[100005];
bool vb[100005]={0};
bool vd[100005]={0};
void dfs(int c){
    cout << c << " ";
    vb[c]=1;
    for(int i=0;i<v[c].size();i++){
        if(!vb[v[c][i]]){
            dfs(v[c][i]);
        }
    }
}

void bfs(int c){
    queue<int> q;
    q.push(c);
    cout << c << " ";
    vd[c]={1};
    while(!q.empty()){
        int head=q.front();
        for(int i=0;i<v[head].size();i++){
            int point=v[head][i];
            if(!vd[point]){
                q.push(point);
                vd[point]=true;
                cout << point << " ";
            }
        }
        q.pop();
    }
}

int main(){
    ios::sync_with_stdio(false);
    int n,k;
    cin >> n >> k;
    for(int i=1;i<=k;i++){
        int a,b;
        cin >> a >> b;
        v[a].push_back(b);
//        v[b].push_back(a);
    }
    for(int i=1;i<=k;i++){
        sort(v[i].begin(),v[i].end());
    }
    
    //DFS
    dfs(1);
    cout << endl;
    bfs(1);
}
还望大佬帮助

回复

5 条回复,欢迎继续交流。

正在加载回复...