蒟蒻40pts求调
查看原帖
蒟蒻40pts求调
507370
Michael0727楼主2024/1/26 22:22

代码如下, 只过了 #4 #5 #7 #9

# include <bits/stdc++.h>
using namespace std ;
int a [514] ;
int g [514] [514] ;
int main ( )
{
	int m , n ;
	cin >> m >> n ;
	memset ( g , 0x3f3f3f3f , sizeof ( g ) ) ;
	for ( int i = 1 ; i <= n ; i ++ )
	{
		g [i] [i] = 1 ;
	}
	for ( int i = 0 ; i <= m ; i ++ )
	{
		int as = 1 , x = 0 ;
		string s ;
		getline ( cin , s ) ;
		int a1 = 0 ;
		for ( int i = 0 ; i < s . size ( ) ; i ++ )
		{
			if ( s [i] == ' ' )
			{
				a [++ x] = a1 ;
				a1 = 0 ;
			}
			else
			{
				a1 = a1 * 10 + int ( s [i] - '0' ) ;
			}
		} 
		a [++ x] = a1 ;
		for ( int j = 1 ; j < x ; j ++ )
		{
			for ( int k = j + 1 ; k <= x ; k ++ )
			{
				g [a [j]] [a [k]] = 1 ;
			}
		}
	}
	for ( int i = 1 ; i <= n ; i ++ )
	{
		for ( int j = 1 ; j <= n ; j ++ )
		{
			for ( int k = 1 ; k <= n ; k ++ )
			{
				g [j] [k] = min ( g [j] [k] , g [j] [i] + g [i] [k] ) ;
			}
		}
	}
	if ( g [1] [n] >= 10000 )
	{
		cout << "NO" << endl ;
	}
	else
	{
		cout << g [1] [n] - 1 << endl ;
	}
	return 0 ; 
}
2024/1/26 22:22
加载中...