卡片迷宫
题面描述
地下城的迷宫一共有 个房间,按照 编号。其中 号房间是入口, 号房间有着无尽的宝藏。房间之间由 条单向的隧道连接,并且每条隧道都有一个颜色。这些隧道除了颜色就不可以区分了。
为了拿到宝藏,你决定准备一些卡片,每张卡片上涂有一种颜色,并且将这些卡片叠成一堆。然后你从 号入口出发,如果当前房间的所有隧道中,有至少一条与最上方的卡片颜色一样,那你可以任选一条对应颜色的隧道,并且将最上方的卡片扔掉。如果没有这种颜色的隧道或者没有卡片,则你可以任意选择一条隧道,并且增加一张对应颜色的卡片放到最上方。
聪明的你拿到了整个地下城的地图,但不幸的是,一旦走进地下城,你就会把地图忘掉。因此,你希望找出一组恰当的卡牌,使得你有机会走到宝藏所在的房间。请输出所需要的最小的卡牌数量,使得你有机会拿到宝藏。
输入格式
所有颜色将用一个 到 之间的整数表示。
第一行三个整数 ,表示房间的个数、隧道的个数、颜色的个数。
接下来 行,每行三个整数 ,表示有一条 的单向隧道,颜色为 。注意房间的编号、颜色的编号均从 开始。
输出格式
一行一个整数,表示所需要的最少卡牌数量。
样例
3 3 2
0 1 1
1 0 1
1 2 0
1
说明/提示
如上图。如果你选择的卡牌是 ,你可以这么走:
- 当前在 号房间(入口),存在一条从 出发,颜色为 的隧道,于是你通过这条隧道走到了 号房间,卡牌变成 。
- 当前在 号房间,由于你没有卡牌了,所以可以任意选择隧道。选择颜色为 的隧道,通向了 号房间,卡牌变为了 。
- 当前在 号房间,并获得了无限的宝藏。
如果你初始时没有卡牌,则你会在 号房间无限循环,也就拿不到宝藏了。因此,你至少需要一张卡牌。
范围
,,。
对于所有 ,,,。
注意两个房间之间可能有多条隧道,一个房间可能存在多条颜色相同的隧道。
国庆提高/省选组比赛
- Status
- Live... (Attended)
- Rule
- IOI
- Problem
- 40
- Start at
- 2025-10-15 19:32
- End at
- 2025-11-16 0:00
- Duration
- 1104 hour(s)
- Host
- Partic.
- 85