Submission #67544807
Source Code Expand
#include <bits/stdc++.h>
#define pii pair<int,int>
#define fi first
#define se second
#define mk make_pair
#define ll long long
#define ull unsigned long long
#define uint unsigned int
#define bi __int128_t
#define lb(x) ((x)&(-(x)))
#define gp(i,j) (((i)>>(j-1))&1)
#define ppc __builtin_popcount
using namespace std;
const int N=2e5+10,K=22,mod=998244353;
const ll inf=1e18+10;
void Add(int &a,int b){a+=b;if(a>=mod) a-=mod;}
void Sub(int &a,int b){a-=b;if(a<0) a+=mod;}
void Mul(int &a,int b){a=1ll*a*b%mod;}
int qp(int a,int b){
int x=1;
while(b){
if(b&1) Mul(x,a);
Mul(a,a);b>>=1;
}return x;
}
int d[N],fa[N],dep[N],dfn[N],siz[N],dc=0;
vector<int> E[N];
set<pii> st[N];
int n,k;
int id(int u,int x){
return (x-1)*n+u;
}
void dfs(int u,int pa){
fa[u]=pa;dep[u]=dep[pa]+1;
dfn[u]=++dc;siz[u]=1;
for(auto v:E[u]){
if(v==pa) continue;
dfs(v,u);siz[u]+=siz[v];
}
}
queue<int> q;
void upd(int l,int r,int D,int p){
if(D>n) return ;
//cout<<l<<' '<<r<<' '<<D<<' '<<p<<endl;
auto it=st[D].lower_bound(mk(l,0));
while((*it).fi<=r){
int id=(*it).se;
d[id]=d[p]+1;q.push(id);
st[D].erase(it);
it=st[D].lower_bound(mk(l,0));
//cout<<(*it).fi<<endl;
}//cout<<endl;
}
void slv(){
cin>>n>>k;
dc=0;
for(int i=1;i<=n;i++)
E[i].clear(),st[i].clear(),d[i]=1e9;
for(int i=1;i<=n;i++)
st[i].insert(mk(n+1,0));
for(int i=1;i<n;i++){
int u,v;cin>>u>>v;
E[u].push_back(v);
E[v].push_back(u);
}dfs(1,0);
for(int i=1;i<=n;i++){
//cout<<i<<' '<<dep[i]<<endl;
st[dep[i]].insert(mk(dfn[i],i));
}
while(!q.empty()) q.pop();
d[1]=0;q.push(1);
while(!q.empty()){
int p=q.front();q.pop();
int now=p,la=0;
for(int i=0;i<=k;i++){
if(!now) break;
if(!la)
upd(dfn[now],dfn[now]+siz[now]-1,dep[now]+(k-i),p);
else
upd(dfn[now],dfn[la]-1,dep[now]+(k-i),p),
upd(dfn[la]+siz[la],dfn[now]+siz[now]-1,dep[now]+(k-i),p);
la=now;now=fa[now];
}
}
for(int i=2;i<=n;i++){
if(d[i]>=1e9) d[i]=-1;
cout<<d[i]<<' ';
}cout<<endl;
}
int main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t=1;cin>>t;
while(t--) slv();
cout.flush();
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Jump Traveling |
| User | LYLAKIOIAKIOI |
| Language | C++ 20 (gcc 12.2) |
| Score | 525 |
| Code Size | 2500 Byte |
| Status | AC |
| Exec Time | 207 ms |
| Memory | 55044 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 525 / 525 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 02_test_00.txt, 02_test_01.txt, 02_test_02.txt, 02_test_03.txt, 02_test_04.txt, 02_test_05.txt, 02_test_06.txt, 02_test_07.txt, 03_test_00.txt, 03_test_01.txt, 03_test_02.txt, 03_test_03.txt, 03_test_04.txt, 03_test_05.txt, 03_test_06.txt, 03_test_07.txt, 04_test_00.txt, 04_test_01.txt, 04_test_02.txt, 04_test_03.txt, 04_test_04.txt, 05_test_00.txt, 05_test_01.txt, 05_test_02.txt, 05_test_03.txt, 05_test_04.txt, 05_test_05.txt, 05_test_06.txt, 05_test_07.txt, 06_test_00.txt, 06_test_01.txt, 06_test_02.txt, 07_test_00.txt, 07_test_01.txt, 07_test_02.txt, 07_test_03.txt, 07_test_04.txt, 07_test_05.txt, 07_test_06.txt, 07_test_07.txt, 07_test_08.txt, 07_test_09.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 6 ms | 12800 KiB |
| 00_sample_01.txt | AC | 5 ms | 12796 KiB |
| 01_test_00.txt | AC | 80 ms | 12884 KiB |
| 01_test_01.txt | AC | 54 ms | 12940 KiB |
| 01_test_02.txt | AC | 66 ms | 13032 KiB |
| 01_test_03.txt | AC | 93 ms | 14744 KiB |
| 01_test_04.txt | AC | 126 ms | 26020 KiB |
| 01_test_05.txt | AC | 156 ms | 46740 KiB |
| 01_test_06.txt | AC | 147 ms | 46696 KiB |
| 01_test_07.txt | AC | 166 ms | 46912 KiB |
| 01_test_08.txt | AC | 206 ms | 47108 KiB |
| 02_test_00.txt | AC | 54 ms | 13016 KiB |
| 02_test_01.txt | AC | 64 ms | 13224 KiB |
| 02_test_02.txt | AC | 88 ms | 14692 KiB |
| 02_test_03.txt | AC | 135 ms | 26828 KiB |
| 02_test_04.txt | AC | 143 ms | 47656 KiB |
| 02_test_05.txt | AC | 131 ms | 47564 KiB |
| 02_test_06.txt | AC | 161 ms | 46900 KiB |
| 02_test_07.txt | AC | 207 ms | 47320 KiB |
| 03_test_00.txt | AC | 61 ms | 12932 KiB |
| 03_test_01.txt | AC | 74 ms | 13244 KiB |
| 03_test_02.txt | AC | 82 ms | 14940 KiB |
| 03_test_03.txt | AC | 124 ms | 29276 KiB |
| 03_test_04.txt | AC | 124 ms | 52380 KiB |
| 03_test_05.txt | AC | 114 ms | 52296 KiB |
| 03_test_06.txt | AC | 146 ms | 50508 KiB |
| 03_test_07.txt | AC | 176 ms | 51512 KiB |
| 04_test_00.txt | AC | 186 ms | 47532 KiB |
| 04_test_01.txt | AC | 182 ms | 49568 KiB |
| 04_test_02.txt | AC | 174 ms | 55044 KiB |
| 04_test_03.txt | AC | 177 ms | 54216 KiB |
| 04_test_04.txt | AC | 176 ms | 52992 KiB |
| 05_test_00.txt | AC | 197 ms | 46684 KiB |
| 05_test_01.txt | AC | 204 ms | 46836 KiB |
| 05_test_02.txt | AC | 129 ms | 47104 KiB |
| 05_test_03.txt | AC | 123 ms | 47316 KiB |
| 05_test_04.txt | AC | 76 ms | 46468 KiB |
| 05_test_05.txt | AC | 78 ms | 46368 KiB |
| 05_test_06.txt | AC | 80 ms | 47108 KiB |
| 05_test_07.txt | AC | 81 ms | 47420 KiB |
| 06_test_00.txt | AC | 143 ms | 47336 KiB |
| 06_test_01.txt | AC | 148 ms | 47920 KiB |
| 06_test_02.txt | AC | 147 ms | 47740 KiB |
| 07_test_00.txt | AC | 91 ms | 46820 KiB |
| 07_test_01.txt | AC | 91 ms | 46772 KiB |
| 07_test_02.txt | AC | 92 ms | 46780 KiB |
| 07_test_03.txt | AC | 116 ms | 46836 KiB |
| 07_test_04.txt | AC | 98 ms | 47532 KiB |
| 07_test_05.txt | AC | 94 ms | 46836 KiB |
| 07_test_06.txt | AC | 164 ms | 46484 KiB |
| 07_test_07.txt | AC | 90 ms | 47084 KiB |
| 07_test_08.txt | AC | 94 ms | 46948 KiB |
| 07_test_09.txt | AC | 121 ms | 46740 KiB |