Submission #67554874
Source Code Expand
//People who believe in miracles are as amazing as miracles themselves.
#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline ll read(){
ll x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-') f=-f;ch=getchar();}
while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
return x*f;
}
const int N=2e5+10,K=80;
int n,num,k,fa[N],dep[N],dis[N*K],vis[N*K];
vector<int> T[N];
vector<pair<int,int>> G[N*K];
inline int id(int x,int i,int t){return n+(x*k+i)*2+t;}
void dfs(int x){
dep[x]=(dep[fa[x]]+1)%k;
int p=x;
for(int i=1;i<=k;++i) p=fa[p];
if(p){
G[p].emplace_back(x,1);
G[x].emplace_back(p,1);
}
p=x;
for(int i=0;i<=k-1;++i){
if(p){
G[id(p,dep[x],1)].emplace_back(x,0);
G[x].emplace_back(id(p,dep[x],0),0);
}
p=fa[p];
}
if(auto it=find(T[x].begin(),T[x].end(),fa[x]);it!=T[x].end()) T[x].erase(it);
if(T[x].empty()) return;
for(int j=0;j<k;++j) if(j!=dep[x]){
int p=((dep[x]+(k-(j-dep[x])))%k+k)%k;
for(int i=1;i<T[x].size();++i){
G[id(T[x][i-1],j,0)].emplace_back(num+i,1);
G[num+i].emplace_back(id(T[x][i],p,1),0);
if(i+1<T[x].size()) G[num+i].emplace_back(num+i+1,0);
}
num+=T[x].size()-1;
}
reverse(T[x].begin(),T[x].end());
for(int j=0;j<k;++j) if(j!=dep[x]){
int p=((dep[x]+(k-(j-dep[x])))%k+k)%k;
for(int i=1;i<T[x].size();++i){
G[id(T[x][i-1],j,0)].emplace_back(num+i,1);
G[num+i].emplace_back(id(T[x][i],p,1),0);
if(i+1<T[x].size()) G[num+i].emplace_back(num+i+1,0);
}
num+=T[x].size()-1;
}
for(int y:T[x]) fa[y]=x,dfs(y);
}
inline void solve(){
n=read(),k=read(),num=id(n,k-1,1);
for(int i=1;i<=n;++i) T[i].clear();
for(int u,v,i=1;i<n;++i){
u=read(),v=read();
T[u].emplace_back(v),T[v].emplace_back(u);
}
dep[0]=-1,dfs(1);
deque<int> d;
for(int i=1;i<=num;++i) dis[i]=-1,vis[i]=0; dis[1]=0,d.emplace_back(1);
while(!d.empty()){
int u=d.front(); d.pop_front(); if(vis[u]++) continue;
for(auto [v,w]:G[u])
if(dis[v]==-1||dis[v]>dis[u]+w){
dis[v]=dis[u]+w;
if(w) d.emplace_back(v); else d.emplace_front(v);
}
}
for(int i=2;i<=n;++i) printf("%d ",dis[i]); puts("");
while(num) G[num].clear(),--num;
}
signed main(){
#ifndef ONLINE_JUDGE
freopen("../1.in","r",stdin);
freopen("../1.out","w",stdout);
#endif
for(int T=read();T;--T) solve();
return 0;
}
Submission Info
Submission Time
2025-07-12 22:28:38+0900
Task
F - Jump Traveling
User
include_BM
Language
C++ 20 (gcc 12.2)
Score
525
Code Size
2725 Byte
Status
AC
Exec Time
1587 ms
Memory
887484 KiB
Compile Error
Main.cpp: In function ‘void dfs(int)’:
Main.cpp:42:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
42 | for(int i=1;i<T[x].size();++i){
| ~^~~~~~~~~~~~
Main.cpp:45:19: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
45 | if(i+1<T[x].size()) G[num+i].emplace_back(num+i+1,0);
| ~~~^~~~~~~~~~~~
Main.cpp:52:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
52 | for(int i=1;i<T[x].size();++i){
| ~^~~~~~~~~~~~
Main.cpp:55:19: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
55 | if(i+1<T[x].size()) G[num+i].emplace_back(num+i+1,0);
| ~~~^~~~~~~~~~~~
Main.cpp: In function ‘void solve()’:
Main.cpp:72:5: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
72 | for(int i=1;i<=num;++i) dis[i]=-1,vis[i]=0; dis[1]=0,d.emplace_back(1);
| ^~~
Main.cpp:72:49: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
72 | for(int i=1;i<=num;++i) dis[i]=-1,vis[i]=0; dis[1]=0,d.emplace_back(1);
| ^~~
Main.cpp:83:5: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
83 | for(int i=2;i<=n;++i) printf("%d ",dis[i]); puts("");
| ^~~
Main.cpp:83:49: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
83 | for(int i=2;i<=n;++i) printf("%d ",dis[i]); puts("");
| ^~~~
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
60 ms
3796 KiB
00_sample_01.txt
AC
60 ms
3900 KiB
01_test_00.txt
AC
90 ms
3700 KiB
01_test_01.txt
AC
116 ms
4956 KiB
01_test_02.txt
AC
156 ms
15944 KiB
01_test_03.txt
AC
280 ms
58592 KiB
01_test_04.txt
AC
651 ms
228588 KiB
01_test_05.txt
AC
188 ms
50220 KiB
01_test_06.txt
AC
261 ms
86552 KiB
01_test_07.txt
AC
1240 ms
689832 KiB
01_test_08.txt
AC
1292 ms
669976 KiB
02_test_00.txt
AC
115 ms
4976 KiB
02_test_01.txt
AC
156 ms
16112 KiB
02_test_02.txt
AC
252 ms
53244 KiB
02_test_03.txt
AC
690 ms
259800 KiB
02_test_04.txt
AC
171 ms
51276 KiB
02_test_05.txt
AC
254 ms
98216 KiB
02_test_06.txt
AC
1242 ms
685012 KiB
02_test_07.txt
AC
1289 ms
669356 KiB
03_test_00.txt
AC
117 ms
4148 KiB
03_test_01.txt
AC
139 ms
7580 KiB
03_test_02.txt
AC
215 ms
34424 KiB
03_test_03.txt
AC
409 ms
130832 KiB
03_test_04.txt
AC
188 ms
63456 KiB
03_test_05.txt
AC
237 ms
89192 KiB
03_test_06.txt
AC
772 ms
458932 KiB
03_test_07.txt
AC
801 ms
443616 KiB
04_test_00.txt
AC
797 ms
444944 KiB
04_test_01.txt
AC
790 ms
444224 KiB
04_test_02.txt
AC
796 ms
449520 KiB
04_test_03.txt
AC
805 ms
448436 KiB
04_test_04.txt
AC
806 ms
445964 KiB
05_test_00.txt
AC
1247 ms
690676 KiB
05_test_01.txt
AC
1374 ms
768324 KiB
05_test_02.txt
AC
1341 ms
791312 KiB
05_test_03.txt
AC
1457 ms
830980 KiB
05_test_04.txt
AC
882 ms
676060 KiB
05_test_05.txt
AC
965 ms
728160 KiB
05_test_06.txt
AC
1037 ms
776068 KiB
05_test_07.txt
AC
1069 ms
810176 KiB
06_test_00.txt
AC
275 ms
99584 KiB
06_test_01.txt
AC
278 ms
100668 KiB
06_test_02.txt
AC
323 ms
99748 KiB
07_test_00.txt
AC
174 ms
99712 KiB
07_test_01.txt
AC
157 ms
80164 KiB
07_test_02.txt
AC
225 ms
143324 KiB
07_test_03.txt
AC
191 ms
101632 KiB
07_test_04.txt
AC
308 ms
143616 KiB
07_test_05.txt
AC
1188 ms
843856 KiB
07_test_06.txt
AC
597 ms
391972 KiB
07_test_07.txt
AC
1587 ms
853804 KiB
07_test_08.txt
AC
1235 ms
887484 KiB
07_test_09.txt
AC
559 ms
409400 KiB