Строительство реверса

Смысл проблем: учитывая п, м, решая лексикографически наименьшее обратное число 1-п, состоящих из т числа столбцов

Метод один: рекурсивное решение насилия

#include <iostream> 
#include <алгоритм>
 с помощью  пространства имен STD;
INT п, м;
Int в [( Int ) 5e4 + 5 ];
недействительными ДФС ( INT л, INT г, INT ANS) 
{ 
    если (л == г) { 
        соиЬ << л << '  ' ;
        вернуться ; 
} 
Если (л> = г) возврата ;
    если (а [г-л + 1 ]> = ANS) 
    { 
        соиЬ << л << '  '; 
        ДФС (с + 1 , г, лет); 
    } 
    Иначе 
    { 
        для ( INT J = L + 1 , J <= г J ++ )
             , если (а [JL + 1 ] + а [г-J + 1 ] + JL> = лет) 
            { 
                лет - = (JL ) ; 
                ДФС (л + 1 , J, ans- = мин (лет, [г-J + 1 ])); 
                соиЬ << л << '  ' ; 
                ДФС (J + 1 , г, мин (лет, [г-J + 1 ]));
                перерыв ; 
            } 
    } 
} 
INT основных () 
{ 
    а [ 1 ] = 0 , а [ 2 ] = 0 ;
    для ( INT I = 3 ; г <= 5e4; я ++ ) 
        а [I] = а [i - 1 ] + i 2 ; 
    CIN >> п >> м; 
    ДФС ( 1 , п, т);
    вернуться  0 ; 
}

Более высокая временная сложность; обратная, если максимальное количество цифр, составляющих п-1 больше, чем на 1 м будут непосредственно в первую, рекуррентную последовательность

Если это цифровой номер в обратном порядке, в остальных цифры конфигурации этой позиции не может быть больше, чем число т оборотной стороны перечисления, чтобы найти ближайшее место, чтобы удовлетворить это условие, а затем разделить на две частях рекурсивного

Второй метод:

#include <iostream> использование пространства имен STD; 
ЬурейеЕ долго долго LL;
Int в [( Int ) 1e5 + 5 ];
INT основных () 
{ 
    будет п, м; 
    CIN >> п >> м; 
    LL л = 1 , г = п;
    для ( INT I = 1 ; г <= п; я ++ ) 
    { INT т = (щ) * (Ni- 1 ) / 2 ;
        если (т> = м) 
            а [л ++] = I;
        еще

 
 
        
            а [г -] = я, м - = (г-л + 1 ); 
    } 
    Для ( INT I = 1 ; г <= п; я ++ ) 
        COUT << а [я] << '  ' ;
    вернуться  0 ; 
}

Первое решение вручную моделирования: при сортировке от минимального значения, или разместить заказ или положить в обратном направлении.

Еще одно доказательства: число реверса может составлять меньше, меньше лексикографическое, так и на последнем, сделать минимальное количество лексикографического фронта.

рекомендация

отwww.cnblogs.com/zwx7616/p/11402218.html
рекомендация