QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 1024 MB Total points: 100

#1825. Королевская стража

Statistics

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

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

Королю необходимо минимизировать стоимость улучшения дорог, соблюдая при этом несколько других ограничений:

  • Каждый стражник должен быть размещен; никто не должен остаться без дела.
  • Каждый стражник должен быть размещен в деревне из своего подмножества.
  • Каждая деревня должна быть достижима ровно для одного стражника. Если два стражника могут добраться друг до друга, они начнут сражаться.

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

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

Первая строка входных данных содержит три целых числа $n$ ($1 \le n \le 300$), $r$ ($0 \le r \le \frac{n(n-1)}{2}$) и $g$ ($1 \le g \le n$), где $n$ — количество деревень, $r$ — количество дорог, а $g$ — количество стражников. Деревни пронумерованы от $1$ до $n$.

Каждая из следующих $r$ строк содержит три целых числа $a$, $b$ ($1 \le a < b \le n$) и $c$ ($1 \le c \le 1000$). Каждая строка описывает дорогу между деревней $a$ и деревней $b$, стоимость улучшения которой равна $c$. Дороги двусторонние; стражник может пройти из $a$ в $b$ или из $b$ в $a$. Между любой парой деревень существует не более одной дороги.

Каждая из следующих $g$ строк начинается с целого числа $k$ ($1 \le k \le n$), за которым следуют $k$ целых чисел $v$ ($1 \le v \le n$). Каждая строка описывает деревни, составляющие подмножество, в котором может быть размещен конкретный стражник. Подмножества могут пересекаться.

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

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

Примеры

Примеры 1

5 6 2
1 2 1
1 3 4
2 4 2
2 5 5
3 4 7
4 5 3
2 1 2
2 2 4
8

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#598Editorial Open集训队作业 解题报告 by 陈翔乐Qingyu2026-01-02 22:49:48 Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.