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 |
|
|
| 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 |