Submission #67562155


Source Code Expand

#include <iostream>
#include <iomanip>
#include <sstream>
#include <vector>
#include <string>
#include <set>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <queue>
#include <deque>
#include <algorithm>
#include <functional>
#include <iterator>
#include <ranges>
#include <limits>
#include <numeric>
#include <utility>
#include <type_traits>
#include <cmath>
#include <cassert>
#include <cstdio>

using namespace std;
using namespace placeholders;

using LL = long long;
using ULL = unsigned long long;
using VI = vector< int >;
using VVI = vector< vector< int > >;
using VLL = vector< long long >;
using VVLL = vector< vector< long long > >;
template < typename T = int > using VT = vector< T >;
template < typename T = int > using VVT = vector< VT< T > >;
using VS = vector< string >;
using ISS = istringstream;
using OSS = ostringstream;
using PII = pair< int, int >;
using VPII = vector< pair< int, int > >;
template < typename T = int > using LIM = numeric_limits< T >;
template < typename T = int > using OSI = ostream_iterator< T >;

template < typename T > inline istream& operator>>( istream &s, vector< T > &v ){ for ( T &t : v ) { s >> t; } return s; }
template < typename T > inline ostream& operator<<( ostream &s, const vector< T > &v ){ for ( int i = 0; i < int( v.size() ); ++i ){ s << ( " " + !i ) << v[i]; } return s; }

void in_impl(){};
template < typename T, typename... TS > void in_impl( T &head, TS &... tail ){ cin >> head; in_impl( tail ... ); }
#define IN( T, ... ) T __VA_ARGS__; in_impl( __VA_ARGS__ );

template < typename T, typename V >
auto make_vector( const int n, const V &v )
{
	return vector< T >( n, v );
}
template < typename T, typename... TS >
auto make_vector( const int n, TS... ts )
{
	return vector< decltype( make_vector< T >( forward< TS >( ts )...) ) >( n, make_vector< T >( forward< TS >( ts )... ) );
}
template < typename T, typename V >
auto make_vector0()
{
	return vector< T >();
}
template < typename T, typename... TS >
auto make_vector0( const int n, TS... ts )
{
	return vector< decltype( make_vector0< T >( forward< TS >( ts )...) ) >( n, make_vector0< T >( forward< TS >( ts )... ) );
}

template < typename T > inline T fromString( const string &s ) { T res; istringstream iss( s ); iss >> res; return res; }
template < typename T > inline string toString( const T &a ) { ostringstream oss; oss << a; return oss.str(); }

#define NUMBERED( name, number ) NUMBERED2( name, number )
#define NUMBERED2( name, number ) name ## _ ## number
#define REP1( n ) REP2( NUMBERED( REP_COUNTER, __LINE__ ), n )
#define REP2( i, n ) REP3( i, 0, n )
#define REP3( i, m, n ) for ( int i = ( int )( m ); i < ( int )( n ); ++i )
#define GET_REP( a, b, c, F, ... ) F
#define REP( ... ) GET_REP( __VA_ARGS__, REP3, REP2, REP1 )( __VA_ARGS__ )
#define FOR( e, c ) for ( auto &&e : c )
template < typename C, typename F > void EACH( C &c, const F &&f ) { std::for_each( std::begin( c ), std::end( c ), f ); }
#define ALL( c ) begin( c ), end( c )
#define AALL( a ) ( remove_all_extents< decltype( a ) >::type * )a, ( remove_all_extents< decltype( a ) >::type * )a + sizeof( a ) / sizeof( remove_all_extents< decltype( a ) >::type )

#define MAP_PRED( c ) transform( begin( c ), end( c ), begin( c ), bind( minus< int >(), _1, 1 ) );

#define SZ( v ) ( (int)( v ).size() )
#define EXISTS( c, e ) ( ( c ).find( e ) != ( c ).end() )

template < typename T > inline bool chmin( T &a, const T &b ){ if ( b < a ) { a = b; return true; } return false; }
template < typename T > inline bool chmax( T &a, const T &b ){ if ( a < b ) { a = b; return true; } return false; }

inline std::string YES( const bool l ){ return l ? "YES" : "Yes"; }
inline std::string NO( const bool l ){ return l ? "NO" : "No"; }
inline std::string YESNO( const bool f, const bool l = false ){ return f ? YES( l ) : NO( l ); }

#define PB push_back
#define EM emplace
#define EB emplace_back
#define BI back_inserter

#define MP make_pair
#define fst first
#define snd second

#define DUMP( x ) cerr << #x << " = " << ( x ) << endl

//     Λ   Λ__
//  /(*゚ー゚)/\
// /|  ̄U U ̄|\/
//   |      |/

constexpr auto INF = LIM<>::max() / 2;

VI solve()
{
	IN( int, N, K );
	VVI G( N );
	REP( N - 1 )
	{
		IN( int, u, v );
		--u, --v;
		G[u].PB( v );
		G[v].PB( u );
	}

	using State = tuple< int, int, int >;
	// ( vertex, distance, prev )
	map< State, int > distances;
	map< PII, int > counts;
	distances[ State() ] = 0;
	queue< State > que;
	que.EM( State() );
	while ( !que.empty() )
	{
		const auto curr = que.front();
		que.pop();
		const auto &[ u, d, p ] = curr;

		if ( 2 < ++counts[ MP( u, d ) ] )
		{
			continue;
		}

		FOR( v, G[u] )
		{
			if ( v == p )
			{
				continue;
			}

			State next( v, ( d + 1 ) % K, d + 1 == K ? v : u );
			if ( !distances.contains( next ) || distances[ curr ] + 1 < distances[ next ] )
			{
				distances[ next ] = distances[ curr ] + 1;
				que.push( next );
			}
		}
	}

	VI res( N - 1, INF );
	for ( const auto &[ state, dist ] : distances )
	{
		const auto &[ u, d, p ] = state;

		if ( u != 0 && d == 0 )
		{
			chmin( res[ u - 1 ], dist / K );
		}
	}
	FOR( r, res )
	{
		if ( r == INF )
		{
			r = -1;
		}
	}
	return res;
}

int main()
{
	cin.tie( nullptr );
	ios::sync_with_stdio( false );
	cout << setprecision( 12 ) << fixed;

	IN( int, T );
	REP( T )
	{
		cout << solve() << '\n';
	}
	cout << flush;

	return 0;
}

Submission Info

Submission Time
Task F - Jump Traveling
User torus711
Language C++ 23 (gcc 12.2)
Score 0
Code Size 5632 Byte
Status TLE
Exec Time 3343 ms
Memory 618528 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 525
Status
AC × 2
AC × 36
TLE × 17
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 1 ms 3476 KiB
00_sample_01.txt AC 1 ms 3356 KiB
01_test_00.txt AC 84 ms 3492 KiB
01_test_01.txt AC 249 ms 3640 KiB
01_test_02.txt AC 791 ms 5964 KiB
01_test_03.txt AC 2173 ms 24276 KiB
01_test_04.txt TLE 3319 ms 160088 KiB
01_test_05.txt AC 397 ms 40012 KiB
01_test_06.txt AC 508 ms 46468 KiB
01_test_07.txt TLE 3322 ms 216400 KiB
01_test_08.txt TLE 3322 ms 225252 KiB
02_test_00.txt AC 259 ms 3648 KiB
02_test_01.txt AC 716 ms 5296 KiB
02_test_02.txt AC 1621 ms 25612 KiB
02_test_03.txt TLE 3323 ms 176272 KiB
02_test_04.txt AC 409 ms 41028 KiB
02_test_05.txt AC 310 ms 41548 KiB
02_test_06.txt TLE 3322 ms 210016 KiB
02_test_07.txt TLE 3322 ms 216340 KiB
03_test_00.txt AC 682 ms 3884 KiB
03_test_01.txt AC 1717 ms 6064 KiB
03_test_02.txt AC 2648 ms 28744 KiB
03_test_03.txt TLE 3318 ms 133004 KiB
03_test_04.txt AC 344 ms 39692 KiB
03_test_05.txt AC 447 ms 46032 KiB
03_test_06.txt TLE 3326 ms 294676 KiB
03_test_07.txt TLE 3326 ms 296268 KiB
04_test_00.txt TLE 3322 ms 219924 KiB
04_test_01.txt TLE 3326 ms 291712 KiB
04_test_02.txt TLE 3327 ms 318836 KiB
04_test_03.txt TLE 3326 ms 293164 KiB
04_test_04.txt TLE 3327 ms 307084 KiB
05_test_00.txt TLE 3322 ms 221772 KiB
05_test_01.txt TLE 3324 ms 251508 KiB
05_test_02.txt AC 275 ms 40484 KiB
05_test_03.txt AC 260 ms 40776 KiB
05_test_04.txt AC 104 ms 39688 KiB
05_test_05.txt AC 100 ms 39716 KiB
05_test_06.txt AC 99 ms 40428 KiB
05_test_07.txt AC 95 ms 40756 KiB
06_test_00.txt AC 557 ms 55524 KiB
06_test_01.txt AC 533 ms 55856 KiB
06_test_02.txt AC 586 ms 55208 KiB
07_test_00.txt AC 258 ms 55584 KiB
07_test_01.txt AC 186 ms 49084 KiB
07_test_02.txt AC 475 ms 103016 KiB
07_test_03.txt AC 511 ms 112424 KiB
07_test_04.txt AC 629 ms 103624 KiB
07_test_05.txt AC 552 ms 128184 KiB
07_test_06.txt TLE 3343 ms 618528 KiB
07_test_07.txt AC 757 ms 135876 KiB
07_test_08.txt AC 546 ms 128072 KiB
07_test_09.txt AC 2294 ms 335208 KiB