题库首页 › 青少年软件编程(C语言) › 题目 9347

冰阔落 老王喜欢喝冰阔落。 初始时刻,桌面上有n杯阔落,编号为1到n。老王总想把其中一杯阔落倒到另一杯中,这样他一次性就能喝很多很多阔落,假设杯子的容量是足够大的。 有m 次操作,每次操作包含两个整数x与y。 若原始编号为x 的阔落与原始编号为y的阔落已经在同一杯,请输出"Yes";否则,我们将原始编号为y 所在杯子的所有阔落,倒往原始编号为x 所在的杯子,并输出"No"。 最后,老王想知道哪些杯子有冰阔落。 时间限制:10000 内存限制:65536 输入 有多组测试数据,少于 5 组。 每组测试数据,第一行两个整数 n, m (n, m<=50000)。接下来 m 行,每行两个整数 x, y (1<=x, y<=n)。 输出 每组测试数据,前 m 行输出 "Yes" 或者 "No"。 第 m+1 行输出一个整数,表示有阔落的杯子数量。 第 m+2 行有若干个整数,从小到大输出这些杯子的编号。 样例输入 3 2 1 2 2 1 4 2 1 2 4 3 样例输出 No Yes 2 1 3 No No 2 1 4

正确答案:参考程序(Python):冰阔落。并查集:x和y同杯输出Yes,否则把y杯倒入x杯输出No。最后统计有货杯子数及编号。核心:并查集合并。

在线做题 同科目题库