Submission #71498066


Source Code Expand

#include<bits/stdc++.h>
#include<atcoder/scc>
typedef long long ll;
using namespace std;

void dfs(int u, vector<vector<int>>& G, vector<bool>& visited){
    visited[u] = true;

    for(int v : G[u]){
        if(!visited[v]){
            dfs(v, G, visited);
        }
    }
}

int main(){
    int n,m;
    cin >> n >> m;
    int X[m], Y[m];
    for(int i = 0; i < m; i++){
        cin >> X[i] >> Y[i];
        X[i]--; Y[i]--;
    }

    atcoder::scc_graph graph(n);
    for(int i = 0; i < m; i++) graph.add_edge(X[i], Y[i]);

    auto scc = graph.scc();
    int K = scc.size();
    vector<int> idx(n);
    for(int i = 0; i < K; i++){
        for(auto u : scc[i]) idx[u] = i;
    }

    vector<vector<int>> G(K);
    for(int i = 0; i < m; i++){
        if(idx[X[i]] == idx[Y[i]]) continue;
        G[idx[Y[i]]].push_back(idx[X[i]]);  // 逆向きの辺
    }

    for(int i = 0; i < K; i++){
        sort(G[i].begin(), G[i].end());
        G[i].erase(unique(G[i].begin(), G[i].end()), G[i].end());
    }

    int q;
    cin >> q;

    vector<bool> visited(K, false);
    while(q--){
        int t,v;
        cin >> t >> v;
        v--;

        if(t == 1){
            if(!visited[idx[v]]) dfs(idx[v], G, visited);
        }else{
            if(visited[idx[v]]) cout << "Yes" << endl;
            else cout << "No" << endl;
        }
    }
    
}

Submission Info

Submission Time
Task D - Reachability Query 2
User sakimori_coder
Language C++23 (GCC 15.2.0)
Score 425
Code Size 1407 Byte
Status AC
Exec Time 462 ms
Memory 90600 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 425 / 425
Status
AC × 1
AC × 30
Set Name Test Cases
Sample sample_01.txt
All min.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, sample_01.txt
Case Name Status Exec Time Memory
min.txt AC 1 ms 3596 KiB
random_01.txt AC 397 ms 38376 KiB
random_02.txt AC 401 ms 38592 KiB
random_03.txt AC 265 ms 13036 KiB
random_04.txt AC 312 ms 18480 KiB
random_05.txt AC 183 ms 4204 KiB
random_06.txt AC 170 ms 3640 KiB
random_07.txt AC 223 ms 7320 KiB
random_08.txt AC 382 ms 30576 KiB
random_09.txt AC 164 ms 6688 KiB
random_10.txt AC 175 ms 6916 KiB
random_11.txt AC 247 ms 15940 KiB
random_12.txt AC 348 ms 34660 KiB
random_13.txt AC 124 ms 6888 KiB
random_14.txt AC 106 ms 5496 KiB
random_15.txt AC 187 ms 16392 KiB
random_16.txt AC 216 ms 19940 KiB
random_17.txt AC 368 ms 36088 KiB
random_18.txt AC 389 ms 42228 KiB
random_19.txt AC 175 ms 3724 KiB
random_20.txt AC 205 ms 5320 KiB
random_21.txt AC 395 ms 37360 KiB
random_22.txt AC 405 ms 42080 KiB
random_23.txt AC 360 ms 35036 KiB
random_24.txt AC 396 ms 42232 KiB
random_25.txt AC 461 ms 76644 KiB
random_26.txt AC 462 ms 90600 KiB
random_27.txt AC 387 ms 66424 KiB
random_28.txt AC 313 ms 35936 KiB
sample_01.txt AC 1 ms 3504 KiB