ЛШКН2019: День 5. СНМ, Алгоритм Тарьяна, Дерево отрезков, Разреженые таблицы
Алексей работает системным администратором в локальной домовой сети. Его сеть соединяет множество квартир и располагается в нескольких зданиях.
Сеть постоянно расширяется и Алексею поручено проложить новый участок сети. У него есть схема, на которой указаны все возможные соединения между парами квартир и для каждого соединения он знает длину провода, необходимого для его прокладки. Его цель состоит в том, чтобы все квартиры были подключены к сети (возможно через другие квартиры).
Компания, в которой работает Алексей покупает кабель только в одном специализированном магазине. В магазине продается кабель пятой и шестой категорий по цене P5 и P6 рублей за метр. При этом в наличии имеется только Q5 метров кабеля пятой категории и Q6 метров кабеля шестой категории.
Алексею необходимо составить план постройки сети с наименьшими затратами. План представляет собой список соединений между квартирами, при этом каждому соединению должно быть приписано, кабель какой категории будет проложен между этими квартирами (пятой или шестой). Стоимость прокладки этой сети равна сумме стоимости прокладки всех соединений. Общая длина кабеля каждой категории не должна превышать количество кабеля, имеющегося в магазине.
Входные данные
В первой строке входного файла содержится число N — количество квартир, которые необходимо соединить и M — количество возможных соединений (1 ≤ N ≤ 1000, 1 ≤ M ≤ 10 000) .
Следующие M строк содержат описание возможных соединений. Каждое описание состоит из трех чисел A, B и L — где A и B задают номера квартир, а L — длина соединения между ними (1 ≤ L ≤ 100). Квартиры занумерованы от 1 до N .
Последняя строка входного файла содержит числа P 5, Q 5, P 6, Q 6 – цену и количество кабеля пятой и шестой категории соответственно (1 ≤ P , Q ≤ 10 000) .
Выходные данные
Если все квартиры можно соединить в сеть, то следует вывести N строк, описывающих план сети. Первая строка должна содержать стоимость прокладки сети. Следующие N-1 строк должны содержать описание соединений, представленных двумя числами каждое: Ai и Ci, где Ai — номер соединения в списке возможных соединений (от 1 до M), а Ci задает категорию кабеля и может принимать значения 5 или 6. Если планов несколько — выведите любой из них.
Если все квартиры соединить невозможно выведите слово Impossible.
Источник
Informatics задачи на дерево отрезков
toulst → Which website have topic wise problem list?
mustard_with_fries69420 → Help Needed
K evin114514 → I’m Kevin114514, AMA!
pakhomovee → Codeforces Round #893 (Div. 2)
abcsumits → Help me to find number of solution of this equation efficiently
awoo → Разбор Educational Codeforces Round 149
T heQueenOfHatred → 2023 KSAAC Summer · solved.ac Arena #4 Announcement
maverick_GOD → How to use gcc instead of clang on macOS, specially M1? (Help)
mohit_jx64 → [Invitation] Coding Events — Esya’23 IIIT-Delhi
PinkieRabbit → AI language models and cheating in online contests
R.A.N.K.A. → Help in Permutation P[i]=P[P[i]]
Afnan_Saif → Why is CodeChef so Weird?
Medeali → Solving Div 1 A in two hours.Is it good for gray coder?
lumibons → CEOI 2023
SriniV → Answering Queries in sub-linear time
awoo → Разбор Educational Codeforces Round 150
MikeMirzayanov → Изменение правил об использовании стороннего кода в соревнованиях Codeforces
ashwanth106121023 → Good Observations:
steveonalex → [Tutorial] Divide and Conquer Offline Query — A Niche Way to solve Static Range Query
induk_v_tsiane → Codeforces Round 892 (Div. 2).
ashwanth106121023 → Need help
Ibrahim-Elsayed → How to solve this problem?
ssk4988 → How to become a Master
Qingyu → The 1st Universal Cup. Stage 17: Guangzhou (CCPC Final 2022)
minimario → Problems that are Dijkstra with a Twist
Источник
Informatics задачи на дерево отрезков
toulst → Which website have topic wise problem list?
mustard_with_fries69420 → Help Needed
K evin114514 → I’m Kevin114514, AMA!
pakhomovee → Codeforces Round #893 (Div. 2)
abcsumits → Help me to find number of solution of this equation efficiently
awoo → Разбор Educational Codeforces Round 149
T heQueenOfHatred → 2023 KSAAC Summer · solved.ac Arena #4 Announcement
maverick_GOD → How to use gcc instead of clang on macOS, specially M1? (Help)
mohit_jx64 → [Invitation] Coding Events — Esya’23 IIIT-Delhi
PinkieRabbit → AI language models and cheating in online contests
R.A.N.K.A. → Help in Permutation P[i]=P[P[i]]
Afnan_Saif → Why is CodeChef so Weird?
Medeali → Solving Div 1 A in two hours.Is it good for gray coder?
lumibons → CEOI 2023
SriniV → Answering Queries in sub-linear time
awoo → Разбор Educational Codeforces Round 150
MikeMirzayanov → Изменение правил об использовании стороннего кода в соревнованиях Codeforces
ashwanth106121023 → Good Observations:
steveonalex → [Tutorial] Divide and Conquer Offline Query — A Niche Way to solve Static Range Query
induk_v_tsiane → Codeforces Round 892 (Div. 2).
ashwanth106121023 → Need help
Ibrahim-Elsayed → How to solve this problem?
ssk4988 → How to become a Master
Qingyu → The 1st Universal Cup. Stage 17: Guangzhou (CCPC Final 2022)
minimario → Problems that are Dijkstra with a Twist
Источник