刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

冰阔落 I
老王喜欢喝冰阔落。

初始时刻,桌面上有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

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

【喵呜刷题小喵解析】本题是一道模拟题,需要模拟老王倒阔落的过程,并输出相应的结果。首先,我们定义一个容器`container`,其中`container[i]`表示编号为`i`的杯子中的所有阔落编号。对于每次操作,我们输入两个整数`x`和`y`,表示将编号为`y`的杯子中的所有阔落倒向编号为`x`的杯子。如果`x`已经在`container[y]`中,说明`x`和`y`已经在同一杯中,输出"Yes";否则,将`x`加入到`container[y]`中,输出"No"。最后,我们遍历所有的杯子,统计有阔落的杯子数量,并输出这些杯子的编号。为了处理多组测试数据,我们在输入的第一行先读入`n`和`m`,然后在循环中依次读入每组测试数据,调用`solve`函数进行求解。
创作类型:
原创

本文链接:冰阔落 I 老王喜欢喝冰阔落。 初始时刻,桌面上有n杯阔落,编号为1到n。老王总想把其中一杯阔落倒到

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share