제출 #1220298

#제출 시각아이디문제언어결과실행 시간메모리
1220298Younis_DwaiTourism (JOI23_tourism)C++20
10 / 100
5092 ms7208 KiB
#pragma GCC optimize("Ofast,O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include<bits/stdc++.h> //#define int long long #define F first #define S second #define pb push_back #define popp pop_back #define in insert #define endl "\n" #define mid (l+r)/2 using namespace std; const int N=1e5+5; int n,m,QQ,go[N],down[N],C[N],ret=0; vector<int> adj[N]; void dfs(int node , int par){ down[node]=go[node]; for(auto u : adj[node]){ if(u==par) continue ; dfs(u,node); down[node]|=down[u]; } ret+=down[node]; return ; } int32_t main(){ ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr); cin>>n>>m>>QQ; for(int i=1;i<n;i++){ int x,y;cin>>x>>y; adj[x].pb(y); adj[y].pb(x); } dfs(1,1); for(int i=1;i<=m;i++) cin>>C[i]; while(QQ--){ int l,r;cin>>l>>r; for(int i=l;i<=r;i++) go[C[i]]=1; ret=0; dfs(C[l],C[l]); cout<<ret<<endl; for(int i=1;i<=n;i++){ go[i]=down[i]=0; } } 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...