Submission #67554591
Source Code Expand
#include <bits/stdc++.h>
#include <random>
#include <chrono>
using namespace std;
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("unroll-loops,inline")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<double,double> pdd;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
template<typename T> void _do(T x){cerr<<x<<"\n";}
template<typename T,typename ...U> void _do(T x,U ...y){cerr<<x<<", ";_do(y...);}
#define dbg(...) cerr<<#__VA_ARGS__<<" = ";_do(__VA_ARGS__);
const int MOD1=1e9+7;
const int MOD2=998244353;
const ll INF=3e18;
ll fpow(ll a,ll b,ll m)
{
if(!b) return 1;
ll tmp=1;
for(ll cur=a;b;b>>=1,cur=cur*cur%m) if(b&1) tmp=tmp*cur%m;
return tmp;
}
ll inv(ll a,ll m) {return fpow(a,m-2,m);}
#define MottoHayaku ios::sync_with_stdio(false);cin.tie(0);
#define rep(i,n) for(int i=0;i<n;i++)
#define rep1(i,n) for(int i=1;i<=n;i++)
#define F first
#define S second
#define pb push_back
#define uni(c) c.resize(distance(c.begin(),unique(c.begin(),c.end())))
#define unisort(c) sort(c.begin(),c.end()),uni(c)
const int N=2e5+5;
const int K=25;
const int C=1e9;
typedef array<int,4> arr;
vector<int> ed[N];
pii dist[N][K][2];
void solve()
{
int n,k;
cin>>n>>k;
rep1(i,n)
{
ed[i].clear();
}
rep1(i,n-1)
{
int u,v;
cin>>u>>v;
ed[u].pb(v);
ed[v].pb(u);
}
priority_queue<arr,vector<arr>,greater<arr> > pq;
rep1(i,n) rep(j,k) rep(t,2) dist[i][j][t]={C,-1};
dist[1][0][0].F=0;
pq.push({0,1,0,0});
auto upd=[&](int x,int r,pii val)
{
rep(i,2)
{
if(val.F<dist[x][r][i].F)
{
swap(val,dist[x][r][i]);
pq.push({dist[x][r][i].F,x,r,i});
}
if(dist[x][r][i].S==val.S) break;
}
};
while(!pq.empty())
{
auto [d,x,r,p]=pq.top();pq.pop();
if(dist[x][r][p].F<d) continue;
int s=dist[x][r][p].S;
for(int v:ed[x])
{
if(r!=0&&v==s) continue;
int to=(r+1)%k;
upd(v,to,pii(d+1,x));
}
}
for(int i=2;i<=n;i++)
{
if(dist[i][0][0].F>=C) cout<<"-1";
else cout<<dist[i][0][0].F/k;
cout<<" \n"[i==n];
}
}
signed main()
{
MottoHayaku
int t;
cin>>t;
//t=1;
while(t--)
{
solve();
}
}
Submission Info
| Submission Time |
|
| Task |
F - Jump Traveling |
| User |
Fysty |
| Language |
C++ 20 (gcc 12.2) |
| Score |
525 |
| Code Size |
2645 Byte |
| Status |
AC |
| Exec Time |
1169 ms |
| Memory |
97604 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 |
2 ms |
3512 KiB |
| 00_sample_01.txt |
AC |
2 ms |
3652 KiB |
| 01_test_00.txt |
AC |
31 ms |
3660 KiB |
| 01_test_01.txt |
AC |
53 ms |
3572 KiB |
| 01_test_02.txt |
AC |
121 ms |
4008 KiB |
| 01_test_03.txt |
AC |
232 ms |
8236 KiB |
| 01_test_04.txt |
AC |
374 ms |
38716 KiB |
| 01_test_05.txt |
AC |
183 ms |
93372 KiB |
| 01_test_06.txt |
AC |
181 ms |
93212 KiB |
| 01_test_07.txt |
AC |
625 ms |
94520 KiB |
| 01_test_08.txt |
AC |
1169 ms |
96596 KiB |
| 02_test_00.txt |
AC |
54 ms |
3556 KiB |
| 02_test_01.txt |
AC |
110 ms |
4076 KiB |
| 02_test_02.txt |
AC |
190 ms |
8280 KiB |
| 02_test_03.txt |
AC |
398 ms |
40764 KiB |
| 02_test_04.txt |
AC |
136 ms |
97516 KiB |
| 02_test_05.txt |
AC |
130 ms |
97332 KiB |
| 02_test_06.txt |
AC |
632 ms |
94416 KiB |
| 02_test_07.txt |
AC |
1145 ms |
96588 KiB |
| 03_test_00.txt |
AC |
104 ms |
3572 KiB |
| 03_test_01.txt |
AC |
212 ms |
3984 KiB |
| 03_test_02.txt |
AC |
242 ms |
8112 KiB |
| 03_test_03.txt |
AC |
314 ms |
40716 KiB |
| 03_test_04.txt |
AC |
139 ms |
92580 KiB |
| 03_test_05.txt |
AC |
135 ms |
92636 KiB |
| 03_test_06.txt |
AC |
372 ms |
92564 KiB |
| 03_test_07.txt |
AC |
603 ms |
92584 KiB |
| 04_test_00.txt |
AC |
589 ms |
92772 KiB |
| 04_test_01.txt |
AC |
588 ms |
92668 KiB |
| 04_test_02.txt |
AC |
602 ms |
92644 KiB |
| 04_test_03.txt |
AC |
627 ms |
92592 KiB |
| 04_test_04.txt |
AC |
656 ms |
92592 KiB |
| 05_test_00.txt |
AC |
1142 ms |
96532 KiB |
| 05_test_01.txt |
AC |
983 ms |
96460 KiB |
| 05_test_02.txt |
AC |
133 ms |
94920 KiB |
| 05_test_03.txt |
AC |
129 ms |
95180 KiB |
| 05_test_04.txt |
AC |
93 ms |
94256 KiB |
| 05_test_05.txt |
AC |
92 ms |
96404 KiB |
| 05_test_06.txt |
AC |
92 ms |
97056 KiB |
| 05_test_07.txt |
AC |
93 ms |
97348 KiB |
| 06_test_00.txt |
AC |
124 ms |
97240 KiB |
| 06_test_01.txt |
AC |
132 ms |
97548 KiB |
| 06_test_02.txt |
AC |
147 ms |
97604 KiB |
| 07_test_00.txt |
AC |
91 ms |
97136 KiB |
| 07_test_01.txt |
AC |
107 ms |
94568 KiB |
| 07_test_02.txt |
AC |
138 ms |
97248 KiB |
| 07_test_03.txt |
AC |
202 ms |
94400 KiB |
| 07_test_04.txt |
AC |
180 ms |
97196 KiB |
| 07_test_05.txt |
AC |
156 ms |
97220 KiB |
| 07_test_06.txt |
AC |
938 ms |
92956 KiB |
| 07_test_07.txt |
AC |
238 ms |
95264 KiB |
| 07_test_08.txt |
AC |
156 ms |
97320 KiB |
| 07_test_09.txt |
AC |
587 ms |
92812 KiB |