Темы
    Информатика(2656 задач)
---> 22 задач <---
Источники --> Личные олимпиады --> Индивидуальная олимпиада по информатике и программированию (ИОИП)
Страница: << 1 2 3 4 5 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
512 megabytes

На планете Руук существует Большая Корпорация Маленьких Фей. Одним из видов деятельности, которым испокон веков занимаются ее сотрудницы, является посадка грядок с волшебными грибами. Каждый день, начиная с самого первого дня существования этой корпорации, феи создают одну новую грядку грибов. После этого с новой грядки два дня можно собирать споры, которыми размножаются эти грибы, а потом грядка будет поставлять уже только сам продукт — грибы.

Таким образом, если обозначить количество грибов, посаженных на грядке, созданной в день номер i, как ci, то оно будет считаться по формуле ci = ci - 1 + ci - 2. Так, в первый и второй дни было посажено по одному грибу, в третий — два, в четвертый — три, в пятый — пять и так далее.

Волшебные грибы являются самыми ценными сувенирами, которые путешественник может привезти с планеты Руук. Поэтому первым, что делает любой приезжий, становится поиск грядки с волшебными грибами. Однако, в последнее время все чаще стали появляться сообщения о поддельных волшебных грибах. Тщательное расследование показало, что это является следствием действий Маленькой Корпорации Больших Фей, которая сажает грядки с грибами, внешне не отличимыми, но далеко не такими ценными, как волшебные. Причем, создавая очередную грядку, эти феи сажают туда такое количество грибов, какое их соперницы никогда не сажали и не смогут посадить.

Казалось бы, после выяснения этого факта отличать волшебные грядки от поддельных стало просто. Но обе корпорации существуют достаточно давно, количество грядок и грибов на них давно превысило все разумные пределы. Вас попросили написать программу, по количеству грибов на грядке сообщающую, является ли эта грядка волшебной.

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

Первая строка входного файла содержит одно число N (1 ≤ N ≤ 1000000) — количество исследуемых грядок. Следующие n строк содержат по одному целому числу ai — количества грибов на исследуемых грядках. Размер входного файла не превышает 1 Мб.

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

Для каждого числа, данного во входном файле, выведите «Yes», если грядка с таким количеством грибов является волшебной, и «No» — если не является. Ответы разделяйте переводами строк.

Примечание

Решения, работающие для чисел, не превышающих 263 - 1, будут оцениваться из 30 баллов.

Решения, также работающие для входных данных, не превышающих 15 килобайт, будут оцениваться из еще 30 баллов.

Примеры
Входные данные
8
1
2
3
4
5
6
7
8

Выходные данные
Yes
Yes
Yes
No
Yes
No
No
Yes
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Федот — дизайнер, ему поручена ответственная работа по художественной укладке плитки черного и белого цвета. Его последнее задание — уложить черные и белые плитки в квадрате n × n.

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


Все эти квадраты являются похожими, и никакой другой не похож на них

Федот заметил, что клиенты никогда не смотрят на всю работу целиком, обычно поле их зрения ограничивается квадратом k × k. Для оценки эскизов он ввел специальную величину — сложность. Она равна числу пар не похожих друг на друга квадратов k × k, которые встречаются в картине.

Методом проб и ошибок Федот установил, что клиентам нравятся картины определенной сложности. Слишком большая сложность похожа на хаос, а слишком малая навевает скуку, считает Федот.

Прежде чем класть плитку, Федот подготовил несколько эскизов. Помогите Федоту вычислить их сложность.

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

Первая строка входного файла содержит два целых числа n и k (1 ≤ k ≤ n ≤ 500). Следуюшие n строк содержат описание эскиза. Каждая из них имеет длину n и состоит из символов b и w, которые соответствуют белому и черному цветам плиток.

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

В первой строке выходного файла выведите одно целое число q — сложность картины.

Примечание

Решения, работающие при n ≤ 10, будут оцениваться из 30 баллов.

Решения, работающие при n ≤ 100, будут оцениваться из 60 баллов.

Примеры
Входные данные
2 1
bw
wb
Выходные данные
0
Входные данные
3 2
bwb
wbb
bbw
Выходные данные
3
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Во времена обучения в Хогвартсе, когда лорда Волан-Де-Морта еще звали Томом Марволо Реддлом, он был довольно привлекательным молодым человеком. Однако многочисленные темные дела испортили его внешний вид, а именно - лишили носа.

Медицина не стоит на месте, и чудеса современной пластической хирургии помогут ему решить эту проблему. Он записался на пластическую операцию по созданию искусственного носа, и теперь перед ним осталась только одна проблема - ему необходимо выбрать место расположения своего будущего носа. К решению этого вопроса он подошел с математической точки зрения.

Лицо лорда можно упрощенно представить как клетчатый прямоугольник из \(n\) строк и \(m\) столбцов. Волан-де-Морт знает, что его нос займет ровно две клетки, имеющих общую горизонтальную или вертикальную сторону. Еще он знает, что некоторые клетки уже заняты его глазами и ртом, и они не могут быть заняты еще и носом. Теперь он хочет знать количество способов разместить новый нос на своем лице. Чтобы не стать следующей жертвой темных дел Волан-де-Морта, вам придется помочь ему с решением этой задачи.

Формат входного файла

Первая строка входного файла содержит два целых числа \(n\) и \(m\) (\(1 \le n, m \le 1{\,}000\)) - размеры лица лорда Волан-де-Морта. Каждая из следующих \(n\) строк содержит по \(m\) символов - описание его лица. Символ <<#>> означает, что соответствующая клетка уже чем-то занята, а символ <<.>> - что она свободна и может стать одной из двух, занятых носом.

Формат выходного файла

В первой строке выходного файла выведите одно целое число - количество способов разместить нос на лице Волан-де-Морта.

Примеры
Входные данные
2 2
..
..
Выходные данные
4
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Испокон веков разделением учеников на факультеты занимается волшебная шляпа. Раньше в школе было четыре различных факультета, но после недавних реформ факультетов стало \(p\). Шляпа же всё ещё занимается распределением учеников.

Перед торжественной церемонией шляпа заранее составляет план распределения учеников по факультетам. План является последовательностью чисел \(a_1, a_2, \ldots, a_k\), где \(a_i\) является номером факультета, на который попадет \(i\)-й ученик.

В своём плане шляпа использует для факультетов номера от \(0\) до \(p-1\). Следующим за \(i\)-м факультетом считается \((i+1)\)-й, за \((p-1)\)-м - нулевой. Первая версия плана содержит только один факультет - нулевой. После чего шляпа много раз дописывает в конец плана текущее содержимое плана, заменив каждый факультет на следующий.

Рассмотрим распределение девяти учеников по четырём факультетам. Шляпа будет последовательно строить следующие планы: \((0)\), \((0, 1)\), \((0, 1, 1, 2)\), \((0, 1, 1, 2, 1, 2, 2, 3)\), \((0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 0)\). Длина последнего плана достаточна для распределения всех учеников по факультетам, поэтому следующие планы шляпа может не строить.

Скажите, на какой из \(p\) факультетов шляпа распределит \(n\)-го ученика.

Формат входного файла

В первой строке задано число \(q\) (\(1 \le q \le 10^5\)) - количество запросов. В следующих \(q\) строках описаны запросы. Каждый запрос содержит два целых числа \(n\) и \(p\) (\(1 \le n \le 10^{18}\), \(2 \le p \le 10^{18}\)) - номер ученика и количество факультетов в Хогвартсе.

Формат выходного файла

Для каждого запроса выведите одно число - номер факультета, на который шляпа распределит \(n\)-го ученика.

Примеры
Входные данные
10
1 1000
2 1000
4 1000
8 1000
16 1000
32 1000
64 1000
128 1000
256 1000
512 1000
Выходные данные
0
1
2
3
4
5
6
7
8
9
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Гарри, возглавив подразделения мракоборцев, решил защитить железные дороги от злой магии. Всего в мире волшебников \(n\) железнодорожных станций и \(m\) железных дорог, соединяющих эти станции. Каждая дорога соединяет две различные станции, причем станции могут быть соединены более чем одной дорогой. По каждой железной дороге поезда ходят в обе стороны. Также известно, что между любыми двумя станциями существует путь, состоящий из железных дорог.

У Гарри в запасе \(m\) новых защитных заклинаний, пронумерованных целыми числами от \(1\) до \(m\). Каждое заклинание накладывается на какую-то железную дорогу. Гарри не может использовать одно и то же заклинание для защиты более чем одной железной дороги.

Помимо защиты железных дорог, Гарри хочет, чтобы те же заклинания охраняли и станции. Станция находится под охраной, если наибольший общий делитель номеров заклинаний, защищающих железные дороги, соединяющие эту станцию с остальными, равен единице.

Помогите Гарри защитить все железные дороги так, чтобы каждая станция была под охраной.

Формат входного файла

В первой строке входного файла находится целое число \(n\) (\(1 \le n \le 50{\,}000\)) - количество железнодорожных станций и число \(m\) (\(n-1 \le m \le 150{\,}000\)) - количество железных дорог. Каждая из следующих \(m\) строк содержит по два целых числа: \(a_i\) и \(b_i\) (\(1 \le a_i,b_i \le n, a_i \ne b_i \)) - номера станций, соединенных этой железной дорогой.

Формат выходного файла

Выведите "IMPOSSIBLE", если невозможно защитить все дороги так, чтобы каждая станция была под охраной. В противном случае выведите \(m\) чисел по одному в строке, \(i\)-я строка должна содержать номер заклинания, которое защищает железную дорогу, описанную в \(i+1\)-й строке входного файла.

Примеры
Входные данные
5 6
1 5
1 4
5 4
4 1
3 2
3 4
Выходные данные
4
3
5
6
1
2

Страница: << 1 2 3 4 5 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест