Submission #889727

#TimeUsernameProblemLanguageResultExecution timeMemory
889727vjudge1Tourism (JOI23_tourism)C++17
5 / 100
5042 ms5980 KiB
#include "bits/stdc++.h" using namespace std; #define pb push_back const int N = 1e5 + 1; vector<int> g[N]; int huy1[N],huy2[N]; signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); int n,m,q; cin >> n >> m >> q; for(int i = 0;i < n - 1;i++){ int a,b; cin >> a >> b; g[a].pb(b); g[b].pb(a); } for(int i = 1;i <= m;i++){ int a; cin >> a; huy1[i] = a; huy2[a] = i; } if(n <= 2000 && m <= 2000 && q <= 2000){ for(int i = 0;i < q;i++){ int l,r; cin >> l >> r; vector<int> dis(n + 1); queue<pair<int,int>> q; q.push({huy1[l],-1}); vector<int> pr(n + 1); while(!q.empty()){ auto [v,p] = q.front();q.pop(); for(auto u : g[v]){ if(u != p){ dis[u] = dis[v] + 1; pr[u] = v; q.push({u,v}); } } } vector<int> huy3(n + 1); for(int i = l + 1;i <= r;i++){ int huy4 = huy1[i]; while(huy4 != huy1[l]){ huy3[huy4] = 1; huy4 = pr[huy4]; } } int cnt = 0; for(int i = 1;i <= n;i++){ cnt += huy3[i]; } cout << cnt + 1 << "\n"; } } }
#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...