# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
952407 | hyforces | Swapping Cities (APIO20_swap) | C++14 | 356 ms | 48520 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#include"swap.h"
using namespace std;
#define N 100100
#define J 18
#define inf 0x3f3f3f3f
vector<pair<int,int>>adj[N];
int parent[N],fae[N];
pair<int,int>jump[N][J];
int tin[N],tout[N],t;
void dfs(int u,int fa){
tin[u]=++t;
jump[u][0]={parent[u],fae[u]};
for(int a=1;a<J;++a){
jump[u][a]={jump[jump[u][a-1].first][a-1].first,max({jump[u][a-1].second,jump[jump[u][a-1].first][a-1].second})};
}
for(auto a:adj[u]){
if(a.first==fa)continue;
fae[a.first]=a.second;
parent[a.first]=u;
dfs(a.first,u);
}
tout[u]=t;
}
bool isanc(int u,int v){
return tin[u]<=tin[v]&&tout[v]<=tout[u];
}
int get(int u,int v){
int ret=0;
for(int a=J-1;a>=0;--a){
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |