제출 #1243435

#제출 시각아이디문제언어결과실행 시간메모리
1243435AvianshJail (JOI22_jail)C++20
49 / 100
5095 ms1114112 KiB
#include <bits/stdc++.h> using namespace std; unordered_set<int>nodes; unordered_set<int>fin; void dfs(int st, vector<int>g[], int p, int t){ nodes.insert(st); if(st==t){ for(int i : nodes){ fin.insert(i); } nodes.erase(st); return; } for(int i : g[st]){ if(i==p) continue; if(fin.size()) break; dfs(i,g,st,t); } nodes.erase(st); } bool cyc; void checkcyc(int st, vector<int>g[], int vis[]){ vis[st]=1; for(int i : g[st]){ if(vis[i]==1){ cyc=1; } if(vis[i]) continue; checkcyc(i,g,vis); } vis[st]=2; } void solve(){ int n; cin >> n; vector<int>g[n]; for(int i = 0;i<n-1;i++){ int a,b; cin >> a >> b; a--;b--; g[a].push_back(b); g[b].push_back(a); } int m; cin >> m; int s[m],t[m]; int revs[n],revt[n]; fill(revs,revs+n,-1); fill(revt,revt+n,-1); for(int i = 0;i<m;i++){ cin >> s[i] >> t[i]; s[i]--; t[i]--; revs[s[i]]=i; revt[t[i]]=i; } set<int>path[m]; fin.clear(); for(int i = 0;i<m;i++){ dfs(s[i],g,-1,t[i]); for(int j : fin){ path[i].insert(j); } fin.clear(); } vector<int>g2[m]; for(int i = 0;i<m;i++){ for(int j : path[i]){ if(!(revs[j]==-1||revs[j]==i)){ //start point of smth g2[revs[j]].push_back(i); } if(!(revt[j]==-1||revt[j]==i)){ //end point of smth g2[i].push_back(revt[j]); } } } //now check for cycle. cyc=0; int vis[m]; fill(vis,vis+m,0); for(int i = 0;i<m;i++){ if(vis[i]==0){ checkcyc(i,g2,vis); } } for(bool i : vis){ if(!i){ cyc=1; } } if(cyc){ cout << "No\n"; } else{ cout << "Yes\n"; } } signed main(){ ios::sync_with_stdio(0); cin.tie(0); int t; cin >> t; while(t--){ solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...