제출 #890880

#제출 시각아이디문제언어결과실행 시간메모리
890880vjudge1Jail (JOI22_jail)C++17
0 / 100
1 ms3164 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define ff first #define ss second #define all(a) a.begin(), a.end() const int N = 120000; vector<int> g[N+1]; int n; /* struct Fenwick{ vector<int> fenw; int n; Fenwick(int sz){ n = sz; fenw.resize(n+5, 0); }; void add(int i, int x){ for(; i <= n; i+= i & -i){ fenw[i]+= x; } } int pref(int i){ int s = 0; for(; i > 0; i-= i & -i){ s+= fenw[i]; } return s; } int sum(int l, int r){ return pref(r) - pref(l-1); } }; */ void cl(){ for(int i = 1;i <= n; i++) g[i].clear(); } void solve(){ cin >> n; for(int i = 1;i < n; i++){ int a, b; cin >> a >> b; g[a].push_back(b); g[b].push_back(a); } int q; cin >> q; vector< pair<int, int> > query(q); for(int i = 0;i < q; i++){ cin >> query[i].ff >> query[i].ss; } vector<int> p(q); for(int i = 0;i < q; i++) p[i] = i; do{ vector<int> used(n+1, 0); int ok = 1; for(int i : p){ for(int j = min(query[i].ff, query[i].ss)+1; j <= max(query[i].ff, query[i].ss); j++){ if(used[j]){ ok = 0; break; } } used[query[i].ss]++; } if(ok){ cout << "Yes"; return; } }while(next_permutation(all(p))); cout << "No"; } signed main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t; cin >> t; while(t--){ solve(); cl(); cout << '\n'; } 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...