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
AC × 2
AC × 53
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