全WA求助 样例可以过
查看原帖
全WA求助 样例可以过
713249
hutaooooooo楼主2023/8/19 16:11
#include<bits/stdc++.h>
using namespace std ;
typedef long long op ;
const op N = 22 ;
op sum = 0 , n ;
op ht[ N ][ N ][ N ] ;
op ggbond( op a , op b , op c )
{
	if( a <= 0 || b <= 0 || c <= 0 ) return 1 ;
	else if( a > 20 || b > 20 || c > 20 ) return ggbond( 20 , 20 , 20 ) ;
	else if( a < b && b < c ) 
	{
		if( !ht[ a ][ b ][ c - 1 ] ) ht[ a ][ b ][ c - 1 ] = ggbond( a , b , c - 1 ) ;
		if( !ht[ a ][ b - 1 ][ c ] ) ht[ a ][ b - 1 ][ c ] = ggbond( a , b - 1 , c ) ;
		if( !ht[ a ][ b ][ c - 1 ] ) ht[ a ][ b - 1 ][ c - 1 ] = ggbond( a , b - 1 , c - 1 ) ;
		return ht[ a ][ b ][ c ] = ht[ a ][ b ][ c - 1 ] + ht[ a ][ b - 1 ][ c ] - ht[ a ][ b - 1 ][ c - 1 ] ;
	}
	else
	{
		if( !ht[ a - 1 ][ b ][ c ] ) ht[ a - 1 ][ b ][ c ] = ggbond( a - 1 , b , c ) ;
		if( !ht[ a - 1 ][ b - 1 ][ c ] ) ht[ a - 1 ][ b - 1 ][ c ] = ggbond( a - 1 , b - 1 , c ) ;
		if( !ht[ a - 1 ][ b ][ c - 1 ] ) ht[ a - 1 ][ b ][ c - 1 ] = ggbond( a - 1 , b , c - 1 ) ;
		if( !ht[ a - 1 ][ b - 1 ][ c - 1 ] ) ht[ a - 1 ][ b - 1 ][ c - 1 ] = ggbond( a - 1 , b - 1 , c - 1 ) ;
		return ht[ a ][ b ][ c ] = ht[ a - 1 ][ b ][ c ] + ht[ a - 1 ][ b - 1 ][ c ] + ht[ a - 1 ][ b ][ c - 1 ] - ht[ a - 1][ b - 1 ][ c - 1 ] ;
	}
}
int main( )
{
	op a , b , c ;
	while( cin >> a >> b >> c )
		if( a == -1 && b == -1 && c == -1 ) 
			break ;
		else 
    	    cout << "w(" << a << ", " << b << ", " << c << ") = " << ggbond( a , b , c ) << endl ;
}


2023/8/19 16:11
加载中...