Темы --> Информатика
    Язык программирования(952 задач)
    Алгоритмы(1657 задач)
    Структуры данных(279 задач)
    Интерактивные задачи(17 задач)
    Другое(54 задач)
---> 2656 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 494 495 496 497 498 499 500 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Дано прямоугольное поле, каждая клетка которого покрашена в какой-то цвет. За один ход необходимо перекрасить все клетки одного цвета в другой цвет. Стоимость перекраски одной клетки зависит от номера хода и задается функцией: \(F(i) = ((A \cdot F(i-1)+B) \bmod~C) + 1\), \(F_1\) – известная стоимость первого хода.

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

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

В первой строке натуральные задаются числа \(F_1\), \(A\), \(B\) и \(C\) (\(1 \leq F_1, A, B, C \leq 10000\)) – параметры функции \(F\). Во второй строке задаются два натуральных числа \(M\) и \(N\) (\(1 \leq N, M \leq 50\)) – размеры поля. В последующих \(M\) строках записано по \(N\) натуральных чисел, не превосходящих \(2^{31}\) – цвета клеток.

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

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

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

60 баллов ставится за решения, работающие на тестах, в которых номер цвета не превосходит \(10^5\).

ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

В городе, где живут программисты 1 ≤ n ≤ 500 000 перекрестков, соединенных n - 1 дорогой так, что между любыми двумя перекрестками существует путь по дорогам.

Родители собираются установить на перекрестках города камеры, радиус действия которых равен длине дороги. Родители будут спокойны, если смогут видеть ребят на любой дороге и на любом про перекрестке. Иными словами, для каждого перекрестка должен существовать перекресток, находящийся на расстоянии не более одной дороги, такой что на нем установлена камера и для любой дороги должна быть установлена камера хотя бы на одном конце этой дороги. Установка камер  — затратное дело, поэтому для каждого перекрестка с номером i известна стоимость 1 ≤ cost i ≤ 10 9 установки камеры на нем.

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

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

В первой строке входного файла содержится количество перекрестков n ( 1 ≤ n ≤ 500 000 ).

В последующих n - 1 строках содержатся v i u i — перекрестки соединенные очередной дорогой.

Последняя строчка входного файла содержит n чисел сost 1 , сost 2 , ..., сost n ( 1 ≤ сost i ≤ 10 9 )  — стоимости установки камер на перекрестках.

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

В первой строке выведете минимальную стоимость установки ans и количество перекрестков k , в которых надо установить камеры.

Во второй строке выведите k чисел  — перекрестки, в которых надо установить камеры.

Если ответов несколько, разрешается вывести любой из них.

Примеры
Входные данные
6
1 2
2 3
1 4
4 5
4 6
228 1488 2 2 8 1
Выходные данные
232 3
1 3 4 
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

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

Множество серверов \(A\) называется отказоустойчивым, если при недоступности любого канала связи выполнено следующее условие. Для любого не входящего в это множество сервера \(X\) существует способ передать данные по остальным каналам на сервер \(X\) хотя бы от одного сервера из множества \(A\).

На рис. 1 показан пример сети и отказоустойчивого множества из серверов с номерами 1 и 4. Данные на сервер 2 можно передать следующим образом. При недоступности канала между серверами 1 и 2 — с сервера 4, при недоступности канала между серверами 2 и 3 — с сервера 1. На серверы 3 и 5 при недоступности любого канала связи можно по другим каналам передать данные с сервера 4.

В рамках проекта группе разработчиков компании необходимо разместить свои данные в сети. Для повышения доступности данных и устойчивости к авариям разработчики хотят продублировать свои данные, разместив их одновременно на нескольких серверах, образующих отказоустойчивое множество. Чтобы минимизировать издержки, необходимо выбрать минимальное по количеству серверов отказоустойчивое множество. Кроме того, чтобы узнать, насколько гибко устроена сеть, необходимо подсчитать количество способов выбора такого множества, и поскольку это количество способов может быть большим, необходимо найти остаток от деления этого количества способов на число \(10^9 + 7\).

Требуется написать программу, которая по заданному описанию сети определяет следующие числа: \(k\) — минимальное количество серверов в отказоустойчивом множестве серверов, \(c\) — остаток от деления количества способов выбора отказоустойчивого множества из \(k\) серверов на число \(10^9 + 7\)

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

Первая строка входного файла содержит целые числа \(n\) и \(m\) — количество серверов и количество каналов связи соответственно (\(2 \le n \le 200000\), \(1 \le m \le 200000\)). Следующие \(m\) строк содержат по два целых числа и описывают каналы связи между серверами. Каждый канал связи задается двумя целыми числами: номерами серверов, которые он соединяет.

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

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

Выведите два целых числа, разделенных пробелом: \(k\) — минимальное число серверов в отказоустойчивом множестве серверов, \(c\) — количество способов выбора отказоустойчивого множества из \(k\) серверов, взятое по модулю \(10^9 + 7\)

Пояснения к примеру

В приведенном примере отказоустойчивыми являются следующие множества из двух серверов: {1, 3}, {1, 4}, {1, 5}.

Описание подзадач и системы оценивания

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

Примеры
Входные данные
5 5
1 2
2 3
3 4
3 5
4 5
Выходные данные
2 3
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

В игре «Гекс» используется доска в виде ромба, размера \(N\) строк по \(N\) шестиугольников (\(N\) целое, положительное, не более 20). На рисунке показано поле при \(N=5\). В игре принимают участие двое: первый игрок ходит белыми, второй – черными. За один ход можно поставить одну фишку в любой незанятый шестиугольник. Цель «белых» - соединить верхнюю и нижнюю сторону доски путем из белых фишек (двигаться можно только через сторону шестиугольника). Цель «черных» – соединить правую и левую стороны доски путем из черных фишек. Напишите программу, которая по заданной позиции определяет победили в ней белые или нет.

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

В первой строке файла input.txt записано число \(N\). В следующих \(N\) строках записано по одной строке, длиной \(N\) символов каждая. Символ ‘W’ (white) означает, что соответствующая клетка занята белой фишкой, символ ‘B’ (black) – черной, символ ‘E’ (empty) – клетка пуста.

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

В файл output.txt вывести слово YES, если белые выиграли (существует путь, соединяющий верхнюю и нижнюю строки) и слово NO в противном случае.

Пояснения к примерам

Комментарий ко второму примеру:

Комментарий к третьему примеру:

Примеры
Входные данные
2
EE
WW
Выходные данные
NO
Входные данные
4
EWEE
EWEE
EWEE
BWBB
Выходные данные
YES
Входные данные
4
EEWW
BWBE
WBEB
EEEE
Выходные данные
NO
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Для привлечения денег в казну министр финансов Его Величества Бубея Второго решил проводить ежемесячную лотерею. Лотерейный билет представляет собой таблицу \(5 \times 5\) клеток. В каждой клетке записана одна буква (напомним, что в Королевстве используются только заглавные английские буквы). Билет считается выигрышным, если на нем можно прочесть сумму (записанную прописью). Начинать чтение можно с любой клетки, перемещаясь только через стороны клеток. Возвращаться в уже прочитанную клетку – нельзя. На рисунке показан выигрышный билет на 50 монет – fifty.

Однако закон требует, чтобы не менее определенного процента билетов были выигрышными. Чтобы это гарантировать, в типографии по выпуску билетов используется компьютер.

Напишите программу, определяющую можно ли в данной таблице прочесть заданное слово.

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

В первой строке файла input.txt записано слово, состоящее из заглавных английских букв, длина слова не превышает 25 символов. В следующих 5 строках записано по 5 заглавных английских букв.

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

В файл output.txt выведите слово YES, если такое слово можно прочесть в заданной таблице и NO – если нет.

Пояснение к примеру

В первом примере:

Примеры
Входные данные
THOUSAND
OBUWS
HLOMO
LUSAP
AOHND
ZVTNX
Выходные данные
YES
Входные данные
MILLION
OBUWS
HLIMO
LUSAP
AOHND
ZVTNX
Выходные данные
NO

Страница: << 494 495 496 497 498 499 500 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест