Темы --> Информатика --> Алгоритмы --> Алгоритмы на графах
    Кратчайшие пути в графе(116 задач)
    Обход в глубину(100 задач)
    Способы задания графа(54 задач)
    Минимальный каркас(12 задач)
    Потоки(21 задач)
    Паросочетания(17 задач)
    Эйлеров цикл(9 задач)
    Деревья(16 задач)
---> 319 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 33 34 35 36 37 38 39 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

Однако сотрудники второго отдела высказали другое предположение. Они предположили, что этот список — это в точности список пар городов, между которыми в Берляндии нет автомагистрали. Попытавшись сопоставить номера городов с городами в Берляндии, они также убедились, что это можно сделать.

Директор разведки в затруднении. Решив проверить, возможно ли такое, он дал задание сотрудникам третьего отдела. Директор попросил их выяснить, может ли так быть, что между некоторыми городами в Берляндии проложены автомагистрали, а между некоторыми — нет, и существует самодвойственный список пар. Список пар целых чисел от 1 до \(n\) называется самодвойственным, если можно занумеровать города так, чтобы он задавал все пары городов, между которыми есть автомагистраль, а можно перенумеровать города таким образом, чтобы тот же самый список задавал все пары городов, между которыми автомагистрали нет.

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

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

Входной файл содержит одно число \(n\) — количество городов в Берляндии (\(1 \le n \le 100\)).

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

Если ответа на задачу не существует, выведите в первой строке выходного файла слово «NO».

В противном случае в первой строке выходного файла слово «YES». На второй строке выведите \(m\) — количество автомагистралей в Берляндии. Занумеруем города некоторым образом от 1 до n.

Далее выведите \(m\) строк по два числа — пары городов, между которыми есть автомагистрали.

Между парой городов должно быть не более одной автомагистрали, автомагистраль не должна соединять город сам с собой.

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

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

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

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

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

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

Первая строка входного файла содержит число \(n\) (\(1 \le n \le 200\)). Следующие \(n\) строк содержат пары чисел \(s_i\), \(t_i\). (\(0 \le s_i \le 10^9\), \(1 \le t_i \le 10^9\))

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

Выведите в выходной файл \(n\) чисел. Число номер \(i\) должно быть равно \(1\), если в \(i\)-ом представлении участвуют львы, или \(2\), если участвуют тигры, или \(0\), если не участвуют ни те ни другие.

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

0 7
1 3
4 9
8 11
11 14
Выходные данные
2 1 0 1 2
#2598
  
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Группа Pink Floyd собирается дать новый концертный тур по всему миру. По предыдущему опыту группа знает, что солист Роджер Уотерс постоянно нервничает при перелетах. На некоторых маршрутах он теряет вес от волнения, а на других - много ест и набирает вес.

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

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

Первая строка входного файла содержит три натуральных числа n, m и k - количество городов в мире, количество рейсов и количество концертов, которые должна дать группа соответственно (n≤100, m≤104, 2≤k≤104). Города пронумерованы числами от 1 до n. Следующие m строк содержат описание рейсов, по одному на строке. Рейс номер i описывается тремя числами bi, ei и wi - номер начального и конечного города рейса и предполагаемое изменение веса Роджера в миллиграммах (1≤bi,ei≤n, −105≤wi≤105). Последняя строка содержит числа a1, a2, ..., ak - номера городов, в которых проводятся концерты. В начале концертного тура группа находится в городе a1.Гарантируется, что группа может дать все концерты.

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

Первая строка выходного файла должна содержать число s - количество рейсов, которые должна сделать группа. Вторая строка должна содержать s чисел - номера используемых рейсов. Если существует такая последовательность маршрутов между концертами, что Роджер будет набирать вес неограниченно, то первая строка выходного файла должна содержать строку “infinitely kind”.

Примеры
Входные данные
4 8 5
1 2 -2
2 3 3
3 4 -5
4 1 3
1 3 2
3 1 -2
3 2 -3
2 4 -10
1 3 1 2 4
Выходные данные
6
5 6 5 7 2 3 
Входные данные
4 8 5
1 2 -2
2 3 3
3 4 -5
4 1 3
1 3 2
3 1 -2
3 2 -3
2 4 10
1 3 1 2 4
Выходные данные
infinitely kind
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

НЛО прилетело и написало это условие.

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

В первой стоке входного файла содержится два числа: \(n\) и \(m\) (\(2 \le n \le 10\), \(1 \le m \le n \times (n - 1)\)). Это количество вершин и рёбер в графе, в котором вам требуется найти поток. Далее следуют описания рёбер графа, по одному в каждой строке входного файла. Описание ребра состоит из трёх чисел:
\(a\), \(b\), \(c\) (\(1 \le a, b \le n\), \(a \neq b\), \(1 \le c \le 100\)). Эти числа означают, что из вершины \(a\) в вершину \(b\) идёт ребро пропускной способности \(c\). Гарантируется, что в графе нет кратных рёбер.

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

В единственную строку выходного файла выведите одно число — размер максимального потока из вершины \(1\) в вершину \(n\).

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

Вам задан ориентированный граф \(G\). Каждое ребро имеет некоторую пропускную способность. Найдите максимальный поток между вершинами \(1\) и \(n\).

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

Первая строка входного файла содержит \(n\) и \(m\) — число вершин и рёбер в графе (\(2 \le n \le 500\), \(1 \le m \le 10\,000\)). Последующие строки описывают рёбра. Каждое ребро задается тремя числами: начальная вершина ребра, конечная вершина ребра и пропускная способность ребра. Пропускные способности — целые числа, не превосходящие \(10^9\).

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

Выведите величину максимального потока между вершинами \(1\) и \(n\).

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

Страница: << 33 34 35 36 37 38 39 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест