Темы --> Информатика --> Язык программирования
    Процедуры и функции(96 задач)
    Массивы(232 задач)
    Типы данных(356 задач)
    Циклы(177 задач)
    Условный оператор (if)(164 задач)
    Python(260 задач)
    Standard Template Library(2 задач)
---> 952 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 185 186 187 188 189 190 191 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
512 megabytes

Колоссально! — воскликнул горбоносый. — Программист! Нам нужен именно программист.
Аркадий и Борис Стругацкие, Понедельник начинается в субботу

Изучая книгу «Уравнения математической магии» Роман Ойра-Ойра и Кристобаль Хунта обнаружили интересное уравнение: \(a - (a \oplus x) - x = 0\) для заданого \(a\), где знаком \(\oplus\) обозначено побитовое исключающее ИЛИ (XOR) двух чисел (эта операция обозначается как ^ или xor во многих современных языках программирования). Поскольку данное уравнение предназначалось для решения на машине Алдан-3, все вычисления производились над целыми неотрицательными числами по модулю \(2^{32}\). Ойра-Ойра быстро нашел \(x\), являющееся решением, однако Кристобалю Хунте результат Ойры-Ойры показался недостаточно интересным, поэтому он спросил коллегу, сколько всего существует решений данного уравнения. Так как все вычисления производятся по модулю \(2^{32}\), Кристобаля Хунту интересует количество таких решений \(x\), что \(0 \leq x < 2^{32}\). Такая задача оказалась для Ойры-Ойры слишком сложной, поэтому он обратился за помощью к Вам.

Входные данные

В первой строке задано одно целое число \(a\) (\(0 \leq a \leq 2^{32} - 1\)).

Выходные данные

Выведите одно целое число — количество неотрицательных решений уравнения.

Примечание

Определим операцию побитового ИЛИ (XOR). Пусть даны два целых неотрицательных числа \(x\) и \(y\), рассмотрим их двоичные записи (возможно с ведущими нулями): \(x_k \dots x_2 x_1 x_0\) и \(y_k \dots y_2 y_1 y_0\). Здесь \(x_i\) это \(i\)-й бит числа \(x\), а \(y_i\) это \(i\)-й бит числа \(y\). Пусть \(r = x \oplus y\) — результат операции XOR над числами \(x\) и \(y\). Тогда двоичной записью \(r\) будет \(r_k \dots r_2 r_1 r_0\), где:

\(\) r_i = \left\{ \begin{aligned} 1, ~ \text{если} ~ x_i \ne y_i \\ 0, ~ \text{если} ~ x_i = y_i \end{aligned} \right. \(\)

В первом примере решениями уравнения являются \(0\) и \(2147483648 = 2^{31}\), так как \(0 - (0 \oplus 0) - 0 = 0 - 0 - 0 = 0\) и \(0 - (0 \oplus 2147483648) - 2147483648 = -4294967296 = -2^{32} = 0\) по модулю \(2^{32}\).

Во втором примере решениями уравнения являются \(0\), \(2\), \(2147483648 = 2^{31}\) и \(2147483650 = 2^{31} + 2\).

В третьем примере решениями являются все \(x\), для которых выполнено \(0 \leq x < 2^{32}\).

Примеры
Входные данные
0
Выходные данные
2
Входные данные
2
Выходные данные
4
Входные данные
4294967295
Выходные данные
4294967296
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
512 megabytes

Жюри Московской Олимпиады Школьников по программированию уже много лет проводит олимпиады. За это время у них накопилось огромное количество дипломов. С котятами, с видами на Воробьёвы Горы, с основными достопримечательностями города-героя Москвы и многими другими рисунками на фоне.

На носу была Московская Командная Олимпиада Школьников, на которой будет раздаваться очередной набор дипломов. Последняя проблема, которую всё никак не удавалось решить — кто же будет изображён на дипломах в этом году. Кандидатов было много, но в конце концов остались только Пегас Артур и Единорог Олег. Так как всему составу жюри собраться в одно время в одном месте довольно сложно, было решено провести электронное голосование.

Процесс голосования проходит следующим образом: каждый из членов жюри в течение дня голосования отправляет письмо на почтовый ящик с единственным словом: " PEGAS " или " UNICORN ". Дальше специально обученный бот открывает каждое письмо, считывает кодовое слово и заносит в базу голосования. Более того он поддерживает результаты голосования в онлайн режиме и выкладывает на всем небезызвестный сайт.

И вот пришёл День выборов нового символа для диплома. Ровно в полдень результаты голосования складывались таким образом, что Единорог Олег выигрывал с отрывом в \(a\%\) голосов от Пегаса Артура. Притом известно, что проголосовало только \(p\%\) членов жюри. Пегасу Артуру стало интересно, есть ли у него еще шансы на победу. Вам известно, что победитель считается абсолютным только в том случае, если отрыв от соперника составляет хотя бы один процент голосов. Иначе победителем становится Единорог Олег, так как у него красивые глаза. В случае, если у Пегаса еще есть шансы на абсолютную победу, его интересует, какой минимальный целый процент голосов среди ещё не проголосовавших членов жюри он для этого должен набрать.

Входные данные

В первой строке заданы два целых числа \(a\) и \(p\). (\(0 \leq a \leq 100, 1 \leq p \leq 100\)) — текущий отрыв (в процентах голосов) Единорога Олега от Пегаса Артура и процент членов жюри, которые уже проголосовали, соответственно.

Выходные данные

Выведите одно целое число — минимальное целое количество процентов от оставшегося количества голосов, достаточное для того, чтобы Пегас Артур стал абсолютным победителем. Если у Пегаса нет шансов на абсолютную победу, выведите « Impossible » (без кавычек).

Примечание

В первом примере у Артура \(18.5\%\) поддержки от проголосовавшего в данный момент числа членов жюри, а у Олега \(81.5\%\). Чтобы победить, Артуру надо набрать как минимум \(65\%\) поддержки среди непроголосовавших, чтобы стать абсолютным победителем. В этом случае за Единорога Олега проголосует \(49.415\%\), а за Артура \(50.585\%\). Если же Артур наберет \(64\%\), то у него будет \(49.895\%\), а у Олега \(50.105\%\).

Во втором примере уже все голоса посчитаны, а мнения голосовавших разделились поровну, поэтому победит Единорог Олег.

Примеры
Входные данные
63 31
Выходные данные
65
Входные данные
0 100
Выходные данные
Impossible
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

«Опять эти задачи про смайлики!» – грустил Серёжа на олимпиаде. Действительно, на этот раз авторы дали бесконечное число задач, пронумерованных натуральными числами \((1, 2, 3, \dots)\), и все они были про смайлики. Серёжа много тренировался перед олимпиадой, и выбрал себе лучшую тактику: после задачи с номером \(x\) он решает задачу с номером \(x\) xor \((x/2)\), где xor – это побитовое исключающее или, а деление производится с округлением вниз. Например, \(4\) xor \(8\) равно \(12\), \(7\) xor \(11\) тоже равно \(12\), \(5\) xor \((5/2)\) равно \(7\).

Серёжа считает задачу с номером \(x\) хорошей, если он решит \(k\) задач (начиная с \(x\), выбирая их по своей тактике, при этом, возможно он решит некоторые задачи не по одному разу), а (\(k + 1\))-й задачей опять окажется \(x\). Помогите Серёже – для данного \(k\) найдите количество хороших задач. Так как ответ может быть большим, выведите его по модулю \(10^9 + 7\).

Входные данные

В единственной строке дано целое число k , 1 ≤ k ≤ 10 9 .

Выходные данные

Выведите одно целое число – количество хороших задач по модулю 10 9 + 7 . Если хороших задач бесконечное количество, выведите - 1 .

Группы тестов

Тесты 3-15 \(-\) 30 баллов. \(n \le 10000\).
Тесты 16-35 \(-\) 70 баллов. Дополнительных ограничений нет.
Примеры
Входные данные
2
Выходные данные
3
Входные данные
260
Выходные данные
15
ограничение по времени на тест
4.0 second;
ограничение по памяти на тест
256 megabytes

Мы создали бесконечный кроссворд, взяв прямоугольник размера \(\)\(N \times M\)\(\), заполненный буквами и замостили им бесконечную плоскость. Например, прямоугольник

honi

hsin

порождает следующий крссворд:
...honihonihonihoni...

...hsinhsinhsinhsin...

...honihonihonihoni...

...hsinhsinhsinhsin...

, который бесконечно продолжается во всех направлениях.

В данном кроссворде нами случайно (равновероятно) выбирается одна клетка и одно из восьми направлений. Затем начиная с данной клетки в данном направлении выписывается слово длины \(\)\(K\)\(\). Описанный процесс повторяется (независимо от первого раза) второй раз. Вам требуется вычислить вероятность того, что два выписанных слова совпадут.

Входные данные

Первая строка содержит три числа \(\)\(M, N, K\)\(\) (\(\)\(1 \leq N, M \leq 500\)\(\), \(\)\(1 \leq K \leq 10^9\)\(\)) — размеры блока и длина выбираемого слова соответственно.

Следующие \(\)\(M\)\(\) строк содержат по \(\)\(N\)\(\) латинских строчных букв, задавая блок, коим замощается доска. Гарантируется, что в данных есть хотя бы две различные буквы.

Выходные данные

Выведите требуемую вероятность в виде сокращённой дроби «p/q» без пробелов и кавычек.

Система оценки

Решение, правильно работающее на тестах, в которых \(\)\(N = M\)\(\) будет оцениваться в \(\)\(62\)\(\) балла.

Примеры
Входные данные
1 2 2
ab
Выходные данные
5/16
Входные данные
2 4 3
honi
hsin
Выходные данные
19/512
Входные данные
3 3 10
ban
ana
nab
Выходные данные
2/27
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

По мнению Александра Павловича, текст необычайно красив, если некоторые особые слова (например, «коммунизм», «Ленин», «счастье») встречаются не слишком часто, но и не слишком редко, к тому же достаточно равномерно.

Александр Павлович работает корректором. К нему поступают тексты, он имеет право их некоторым образом менять, после чего возвращает уже исправленную версию.

В связи со своими воззрениями о красоте Александру Павловичу постоянно приходится проверять, сколько особых слов сейчас в той или иной части текста.

Он настолько устал от рутинного подсчёта: «а сколько тут особых слов?», «а сколько тут?», что просит вас помочь ему автоматизировать этот процесс.

Входные данные

Первая строка входного файла содержит текст длины \(L\) (\(1 \leq L \leq 10^5\)), в котором ищутся особые слова.

Следующая строка содержит \(N\) (\(1 \le n \le 10^5\)) — количество особых слов.

Следующие \(n\) строк содержат особые слова. Все особые слова различны. Суммарная длина строк не превосходит \(10^5\).

В следующей строке дано \(Q\) (\(1 \le q \le 10^5\)) — количество интересных Александру Павловичу отрезков.

Следующие \(q\) строк содержат сами отрезки.

Выходные данные

Выведите \(q\) чисел — количества вхождений особых слов в соответствующий отрезок текста.

Система оценки

Тесты к данной задаче состоят из семи групп тестов. Баллы за каждую группу тестов ставятся только при прохождении всех тестов группы и всех тестов зависимых групп и теста из условия.

Обозначим за \(LEN_{max}\) максимальную длину особого слова.

  1. \(n \leq 1000, q = 1\), группа оценивается в \(11\) баллов.
  2. \(LEN_{max} \leq 1000, q = 1\), группа оценивается в \(13\) баллов.
  3. \(q = 1\), группа оценивается в \(12\) баллов. Группа зависит от 1, 2.
  4. \(n \leq 1000, q \leq 10000\), группа оценивается в \(21\) балл. Группа зависит от 1.
  5. \(LEN_{max} \leq 1000, q \leq 10000\), группа оценивается в \(19\) баллов. Группа зависит от 2.
  6. \(q \leq 10000\), группа оценивается в \(23\) балла. Группа зависит от 1, 2, 3, 4, 5.
  7. полные ограничения, группа оценивается в \(1\) балл. Группа зависит от 1, 2, 3, 4, 5, 6.
Примеры
Входные данные
abacababa
2
a
aba
3
5 9
2 2
2 6
Выходные данные
5 0 2

Страница: << 185 186 187 188 189 190 191 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест