AT_arc030_3.[ARC030C] 有向グラフ
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个由 n 个顶点和 m 条边组成的有向图。n 个顶点分别用 1 到 n 的不同整数编号。每个顶点上都写有一个从 a 到 z 的小写字母。
你可以从图中的任意一个顶点开始,并以任意顺序访问各个顶点,目的是恰好收集 k 个字母。每个顶点可以被多次访问,如果该顶点上还有字母,可以在任意一次访问时收集该字母,但每个字母只能被收集一次。如果不需要,也可以选择不收集某些字母。
你觉得单纯收集字母太无聊了,所以想让收集到的 k 个字母按收集顺序排列后,字典序最小。
请输出在满足上述条件下,按收集顺序排列的 k 个字母的字典序最小的字符串。如果无法收集到恰好 k 个字母,则输出 -1。
输入格式
输入通过标准输入给出,格式如下:
n m k
c1 c2 … cn
a1 b1
a2 b2
…
am bm
- 第 1 行包含三个整数,分别表示图的顶点数 n (1≤n≤300)、边数 m (0≤m≤1000) 和需要收集的字母数 k (1≤k≤n)。
- 第 2 行包含 n 个小写字母 ci,第 i 个字母表示顶点 i 上写的字母,字母之间用空格分隔。
- 第 3 行到第 m+2 行,每行包含两个整数 ai 和 bi (1≤ai,bi≤n),表示第 i 条有向边从 ai 指向 bi。
- 图中不存在自环和重边,但可能存在反向边。图不一定连通。
输出格式
输出一行,表示按字典序最小收集顺序得到的 k 个字母组成的字符串。如果无法收集到恰好 k 个字母,则输出 -1。最后请输出换行符。
输入输出样例
输入#1
4 4 3 a b b a 1 2 2 3 3 1 4 3
输出#1
aab
输入#2
5 4 4 d a b c a 1 2 2 3 3 4 2 5
输出#2
dabc
输入#3
5 4 3 d a b c a 1 2 2 3 3 4 2 5
输出#3
abc
输入#4
3 0 2 a b c
输出#4
-1
说明/提示
样例解释 1
下图展示了该输入输出样例的情况。可以依次经过顶点 4→3→1→2,在顶点 4 收集 a,在顶点 1 收集 a,在顶点 2 收集 b,这样收集到的字母按顺序排列字典序最小。

样例解释 4
三个顶点都是孤立的,无论从哪个顶点开始,都无法恰好收集到 2 个字母。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?