?
# | Author | Problem | Lang | Verdict | Time | Memory | Sent | Judged | |
---|---|---|---|---|---|---|---|---|---|
187496625 |
Practice: DaiRuiChen007 |
1670E - 25 | C++14 (GCC 6-32) | Accepted | 186 ms | 10260 KB | 2023-01-01 09:13:22 | 2023-01-01 09:13:22 |
// LUOGU_RID: 98419843 #include<bits/stdc++.h> #define pii pair<int,int> using namespace std; const int MAXN=3e5+1; vector <pii> G[MAXN]; int p,n,ev[MAXN],nv[MAXN]; inline void dfs(int p,int f,int x) { for(auto e:G[p]) { int v=e.first,id=e.second,w=n-v+1; if(id==f) continue; if(x==0) ev[id]=w,nv[v]=w^n; else ev[id]=w^n,nv[v]=w; dfs(v,id,x^n); } } inline void solve() { scanf("%d",&p); n=1<<p; for(int i=1;i<=n;++i) G[i].clear(); for(int i=1;i<n;++i) { int u,v; scanf("%d%d",&u,&v); G[u].push_back(make_pair(v,i)); G[v].push_back(make_pair(u,i)); } dfs(1,0,n),nv[1]=n; puts("1"); for(int i=1;i<=n;++i) printf("%d ",nv[i]);puts(""); for(int i=1;i<n;++i) printf("%d ",ev[i]);puts(""); } signed main() { int T; scanf("%d",&T); while(T--) solve(); return 0; }
?
?
?
?