Dalao求助 #5WA 用tupo写的
查看原帖
Dalao求助 #5WA 用tupo写的
774204
A_chicken_boy楼主2023/7/25 16:13
#include <bits/stdc++.h>
using namespace std ;
#define leng 1002
int num[leng][leng] ;
int nl[leng] ;
int head[leng] , mnext[leng] , ver[leng] , in[leng] , tot ;
void add( int x , int y );
void jiafa ( int y , int x );
queue <int> q ;
int main ( ){
	int m , n ;
	cin >> m >> n ;
	for ( int i = m ; i <= n ; ++i ){
		add( i , i + 1 ) ;
		add( i , i + 2 ) ;
		in[i+1] ++;
		in[i+2] ++;
	}
	num[m][1] = 1 ;
	nl[m] = 1 ;
	q.push( m ) ;
	while ( q.size( ) ){
		
		int x = q.front( ) ;
		q.pop ( ) ;
		for ( int i = head[x] ; i ; i = mnext[i] ){
			int y = ver[i] ;
			in[y]--;
			//cout << y << " " << x << " " ;
			jiafa ( y , x ) ;
			//cout << endl ;
			if ( in[y] == 0 ){
				q.push( y ) ;
			}
 		}
	}
	for ( int i = nl[n] ; i >= 1 ; --i ){
		cout << num[n][i] ;
	}
	return 0 ;
}
void add ( int x , int y ){
	mnext[++tot] = head [x] ;
	head[x] = tot ;
	ver[tot] = y ;
}
void jiafa ( int y , int x ){
	int maxn = max ( nl[y] , nl[x] );
	int k = 0 ;
	for ( int i = 1 ; i <= maxn  ; ++i ){
		
		num[y][i] += num[x][i] ;
		k = num[y][i] / 10 ;
		num[y][i] %= 10 ;
		num[y][i+1] += k ;
	}
	if( num[y][maxn + 1] == 1 ) maxn++;
	nl[y] = maxn ;
	/*for ( int i = 1 ; i <= maxn ; ++i ){
		cout << num[y][i] ;
	}*/
}
2023/7/25 16:13
加载中...