代码随想录:有向图的完全可达性

#include<iostream>
#include<vector>

using namespace std;

void dfs(vector<vector<int>>&graph,vector<int>&visited,int node){
    visited[node]=1;
    for(int i = 0;i<visited.size();i++){
        if(visited[i]==0&&graph[node][i]==1){
            dfs(graph,visited,i);
        }
    }
}

int main(){
    int n,k,a,b;
    cin>>n>>k;
    
    vector<vector<int>> graph(n+1,vector<int>(n+1,0));
    vector<int> visited(n+1,0);
    
    while(k--){
        cin>>a>>b;
        graph[a][b]=1;
    }
    
    dfs(graph,visited,1);
    
    int res = 1;
    for(int i = 1;i<visited.size();i++){
        if(visited[i]==0){
            res=-1;
            break;
        }
    }
    cout<<res;
}
posted @ 2025-02-10 16:37  huigugu  阅读(3)  评论(0编辑  收藏  举报