- 552C Codeforces Ваня и Весы

Ваня имеет весы для взвешивания нагрузки и веса массы ш 0 ,  ш 1 ,  ш 2 , ...,  ш 100 грамм , где W является некоторым целым числом не менее 2 (ровно один вес каждого номинала). Ваня спрашивает , может ли он вес элемента с массой т с помощью заданных весов, если гири можно поставить на обеих кастрюль весы. Формально говоря, ваша задача состоит в том, чтобы определить , можно ли поместить элемент массы т и некоторые веса на левой чаше весов, а некоторые веса на правую чашу весов так, чтобы кастрюли весов находились в равновесии ,


вход

Первая строка содержит два целых числа W ,  м ( 2 ≤  W  ≤ 10 9 , 1 ≤  м  ≤ 10 9 ) - число , определяющее массу весов и массу элемента.

Выход

Печать слово « YES» , если элемент может быть взвешена и « НЕТ» , если она не может.

Примеры
вход
3 7
Выход
ДА
вход
100 99
Выход
ДА
вход
100 50
Выход
НЕТ
Запись

Обратите внимание на первое испытание образца. Один поддон может иметь элемент массы 7 и вес массы 3, а второй поддон может иметь два веса масс 9 и 1, соответственно. Тогда 7 + 3 = 9 + 1.

Обратите внимание на второе испытание образца. Один поддон весов может иметь элемент массы 99 и вес массы 1, а второй поддон может иметь вес массы 100.

Обратите внимание на испытания третьего образца. Это невозможно измерить вес изделия способом, описанным во входных данных.

ID-OJ:
Codeforces-552C

автор:
Caution_X

дата подачи:
20,191,031

Тэги:
Аналоговое

описание моделирования:
Даны два числа т, ш, текущий баланс, и множество весов, массы, ш ^ 0, ш ^ 1, ш ^ 2, ш ^ 3 ...... ш ^ п.
И спрашивают , может ли объект через множество весов таким образом, что масса т из баланса баланса

основных шагов , чтобы решить эту проблему:
(. 1) преобразуются в число т-арной W, P [I] гекс ш хранится справа налево позиции г-го размер
(2) , если я удовлетворяет условию р [г] <= 1 , то она должна быть сбалансирована таким образом , что баланс (левый м, что соответствует правой веса ш арных ^ 1 я ш)
(. 3) к р [I]> 1 количество определяется , является ли преобразуется в р [I] <= 1 && р [г + 1] <= 1, такие , как п-ичных бит я является п-1, и + 1-бит 0 ,
то она может быть записана в виде р [ я] = - 1, р [ г + 1] = 1, не окончательно определена для всех р [I] <= 1 (р [я] Описание ш ^ I -1 тяжелые веса и массы тела м на ту же сторону)

Представляет предупреждение:
каждый вес только один раз

AC код:

# include <бит / STDC ++ ч.>
 с использованием  пространства имен STD;
INT р [ 105 ];
INT основных () 
{ 
    INT ш, м; 
    CIN >> >> ш м;
    INT ID = 1 ;
    в то время как (м) { 
        р [ID ++] = т% мас; 
        м / = ш; 
    } 
    Если (идентификатор> 100 ) { 
        соиЬ << " НЕТ " << епсИ;
        вернуться  0 ; 
    } 
    Для ( INT I =1 ; г <идентификатор; я ++ ) {
         если (р [я]> = ш) { 
            р [я + 1 ] ++ ; 
            р [я] - = ш; 
        } 
        Если (р [я] <= 1 )     продолжить ;
        остальное ,  если (р [я] == w- 1 ) { 
            р [I] = 0 ; 
            р [я + 1 ] ++ ; 
        } 
        Еще { 
            соиЬ << " NO " << епсИ;
            вернуться  0; 
        } 
    } 
    СоиЬ << " ДА " << епсИ;
    вернуться  0 ; 
}

 

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

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