CF1912H.Hypercatapult Commute
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
比特兰正在运行一种革命性的新型交通系统。这种系统既不需要道路,也不需要复杂的机械装置,只需要巨大的投石机。
系统的工作方式如下:比特兰有 n 个城市。每个城市的市中心都有一台投石机。想要出行的人会被放进一个特殊的舱体,然后投石机会把这个舱体投送到另一个城市的市中心。每台投石机的威力都足以将舱体投送到任何其他城市,无论舱体里有多少乘客。唯一的问题是,给投石机充能需要很长时间,因此每台投石机每天只能使用一次。
乘客可能需要多次使用投石机。例如,如果乘客想从城市 A 前往城市 B,他们可以先用投石机从 A 到 C,再换乘另一台投石机从 C 到 B。
今天有 m 位乘客。第 i 位乘客想要从城市 ai 前往城市 bi。你的任务是,在一天之内,用最少次数的投石机发射,将所有乘客送达目的地,或者判断是否无法完成任务。
输入格式
输入的第一行包含两个整数 n 和 m(1≤n≤1000,0≤m≤105),分别表示城市数量和乘客数量。接下来的 m 行,每行包含两个整数 ai 和 bi(1≤ai,bi≤n,ai=bi)。
输出格式
第一行输出一个整数 k,表示你需要使用的最少投石机发射次数。
接下来的 k 行,每行输出两个整数 ci 和 di,表示一次从城市 ci 发射到城市 di 的投石机发射。
注意,你不需要输出每次发射时应该把哪些乘客放进舱体,但你给出的方案必须能让每位乘客都能到达目的地。
如果无法将所有乘客送达目的地,输出一行 −1。
输入输出样例
输入#1
5 6 1 3 1 2 2 3 4 2 1 5 5 1
输出#1
5 5 1 1 2 4 2 2 3 3 5
输入#2
3 6 1 2 1 3 2 1 2 3 3 1 3 2
输出#2
-1
说明/提示
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?