Submission #41787355
Source Code Expand
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define per(i,a,b) for(int i=(a);i>=(b);i--)
#define op(x) ((x&1)?x+1:x-1)
#define odd(x) (x&1)
#define even(x) (!odd(x))
#define lc(x) (x<<1)
#define rc(x) (lc(x)|1)
#define lowbit(x) (x&-x)
#define mp(x,y) make_pair(x,y)
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
using namespace std;
const int MAXN = 2e5+10;
int n,a[MAXN],b[MAXN];
vector<int>e[MAXN];
int fa[MAXN],sz[MAXN],cnt[MAXN],ret;
int V(int x){
return min(sz[x],cnt[x]);
}
int find(int x){
return (fa[x] == x) ? (x) : (find(fa[x]));
}
typedef array<int,2> pr;
vector<pr>opt;
void merge(int x,int y){
x=find(x);y=find(y);
if(x==y){
ret -= V(x);
cnt[x] ++;
ret += V(x);
opt.push_back({x,-1});
}else{
if(sz[x] > sz[y])swap(x,y);
ret -= V(x);ret -= V(y);
fa[x] = y;sz[y] += sz[x];cnt[y] += cnt[x]+1;
ret += V(y);
opt.push_back({x,y});
}
}
void roll_back(){
assert(opt.size());
pr tmp = opt.back();opt.pop_back();
int x = tmp[0],y = tmp[1];
if(y==-1){
ret -= V(x);
cnt[x] --;
ret += V(x);
}else{
ret -= V(y);
fa[x] = x;sz[y] -= sz[x];cnt[y] -= (cnt[x]+1);
ret += V(x);ret += V(y);
}
}
int ans[MAXN];
void dfs(int u,int fa){
for(auto v:e[u])if(v!=fa){
merge(a[v],b[v]);
ans[v] = ret;
dfs(v,u);
roll_back();
}
}
int main(){
ios::sync_with_stdio(false);
cin>>n;
rep(i,1,n)cin>>a[i]>>b[i];
rep(i,1,n)fa[i] = i,sz[i] = 1;
rep(i,1,n-1){
int u,v;cin>>u>>v;
e[u].push_back(v);e[v].push_back(u);
}
merge(a[1],b[1]);
dfs(1,0);
rep(i,2,n){
cout<<ans[i]<<" ";
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | Ex - Ball Collector |
| User | Crying |
| Language | C++ (GCC 9.2.1) |
| Score | 625 |
| Code Size | 1698 Byte |
| Status | AC |
| Exec Time | 180 ms |
| Memory | 36172 KB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 625 / 625 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | example_00.txt, example_01.txt |
| All | example_00.txt, example_01.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| example_00.txt | AC | 10 ms | 8232 KB |
| example_01.txt | AC | 13 ms | 8244 KB |
| test_00.txt | AC | 150 ms | 19076 KB |
| test_01.txt | AC | 72 ms | 13764 KB |
| test_02.txt | AC | 72 ms | 13432 KB |
| test_03.txt | AC | 76 ms | 14332 KB |
| test_04.txt | AC | 59 ms | 12648 KB |
| test_05.txt | AC | 51 ms | 12116 KB |
| test_06.txt | AC | 21 ms | 9516 KB |
| test_07.txt | AC | 105 ms | 15936 KB |
| test_08.txt | AC | 16 ms | 8916 KB |
| test_09.txt | AC | 74 ms | 13856 KB |
| test_10.txt | AC | 180 ms | 19288 KB |
| test_11.txt | AC | 160 ms | 19340 KB |
| test_12.txt | AC | 164 ms | 19292 KB |
| test_13.txt | AC | 162 ms | 19232 KB |
| test_14.txt | AC | 176 ms | 19292 KB |
| test_15.txt | AC | 126 ms | 36060 KB |
| test_16.txt | AC | 125 ms | 36172 KB |
| test_17.txt | AC | 124 ms | 36164 KB |
| test_18.txt | AC | 125 ms | 36148 KB |
| test_19.txt | AC | 125 ms | 36056 KB |
| test_20.txt | AC | 99 ms | 19764 KB |
| test_21.txt | AC | 99 ms | 19744 KB |
| test_22.txt | AC | 98 ms | 19708 KB |
| test_23.txt | AC | 100 ms | 19644 KB |
| test_24.txt | AC | 99 ms | 19684 KB |
| test_25.txt | AC | 109 ms | 19164 KB |
| test_26.txt | AC | 112 ms | 19152 KB |
| test_27.txt | AC | 109 ms | 19108 KB |
| test_28.txt | AC | 111 ms | 19236 KB |
| test_29.txt | AC | 112 ms | 19184 KB |
| test_30.txt | AC | 103 ms | 19628 KB |
| test_31.txt | AC | 102 ms | 19776 KB |
| test_32.txt | AC | 105 ms | 19760 KB |
| test_33.txt | AC | 107 ms | 19764 KB |
| test_34.txt | AC | 104 ms | 19764 KB |
| test_35.txt | AC | 20 ms | 10264 KB |
| test_36.txt | AC | 29 ms | 10260 KB |
| test_37.txt | AC | 24 ms | 10316 KB |
| test_38.txt | AC | 20 ms | 10256 KB |
| test_39.txt | AC | 24 ms | 10248 KB |
| test_40.txt | AC | 156 ms | 18600 KB |
| test_41.txt | AC | 169 ms | 18640 KB |
| test_42.txt | AC | 145 ms | 18704 KB |
| test_43.txt | AC | 141 ms | 18596 KB |
| test_44.txt | AC | 152 ms | 18612 KB |
| test_45.txt | AC | 157 ms | 18524 KB |
| test_46.txt | AC | 157 ms | 18520 KB |
| test_47.txt | AC | 156 ms | 18524 KB |
| test_48.txt | AC | 141 ms | 18508 KB |
| test_49.txt | AC | 157 ms | 18628 KB |
| test_50.txt | AC | 135 ms | 18516 KB |
| test_51.txt | AC | 134 ms | 18516 KB |
| test_52.txt | AC | 145 ms | 18460 KB |
| test_53.txt | AC | 148 ms | 18548 KB |
| test_54.txt | AC | 148 ms | 18528 KB |
| test_55.txt | AC | 136 ms | 18520 KB |
| test_56.txt | AC | 139 ms | 18440 KB |
| test_57.txt | AC | 148 ms | 18532 KB |
| test_58.txt | AC | 134 ms | 18516 KB |
| test_59.txt | AC | 134 ms | 18516 KB |