MLE10pts求调
查看原帖
MLE10pts求调
507370
Michael0727楼主2024/10/20 22:23

不知为何MLE了

代码如下

# include <bits/stdc++.h>
using namespace std ;
struct pnt
{
	short x , y ;
} tmp , w , p ;
char c ;
queue <pnt> q ;
const short dx [4] = { 1 , 0 , -1 , 0 } , dy [4] = { 0 , 1 , 0 , -1 } ;
int main ( )
{
    short n , m ;
    cin >> n >> m ;
    bool a [n + 1] [m + 1] ;
    for ( short i = 1 ; i <= n ; i ++ )
    {
    	for ( short j = 1 ; j <= m ; j ++ )
    	{
    		cin >> c ;
    		a [i] [j] = ( c == '.' ? 0 : 1 ) ;
		}
	}
	w . x = w . y = 1 ;
	q . push ( w ) ;
	while ( q . size ( ) )
	{
		p = q . front ( ) ;
		q . pop ( ) ;
		a [p . x] [p . y] = 1 ;
		if ( p . x == m && p . y == n )
		{
			cout << "Yes" << endl ;
			return 0 ;
		}
		for ( short i = 0 ; i < 4 ; i ++ )
		{
			tmp . x = p . x + dx [i] ;
			tmp . y = p . y + dy [i] ;
			if ( tmp . x > 0 && tmp . x <= m && tmp . y > 0 && tmp . y <= n && ( ! a [tmp . x] [tmp . y] ) )
			{
				q . push ( tmp ) ;
			}
		}
	}
	cout << "No" << endl ;
	return 0 ;
}
2024/10/20 22:23
加载中...