#P7847. Discovery of Cycles
Discovery of Cycles
题目描述
为了响应 8202 年奥运会,赛事主办城市 Quber City 计划建造一座宏伟的体育场。
这座体育场与通常带有环形跑道的传统体育场完全不同。按照设计方案,体育场中共有 个服务点,以及连接这些服务点的 条无向跑道。如此大胆的设计引起了全世界的关注,但同时也带来了巨大的建设成本。
因此,设计者正在尝试简化方案以降低成本。他们发现,最简单的方法是将这 条跑道按照某种顺序排列,然后只保留排列中一段连续的跑道。由于只需修建部分跑道,便可以节省经费,大家都会很高兴——或许那些需要环形跑道进行比赛的长跑运动员除外。
一条环形路线从某个服务点出发,经过若干互不相同的服务点后,最终回到起点,并且使用过的所有跑道必须互不相同。
你的任务是编写一个程序,快速判断:当只选取跑道列表中的某一段连续跑道时,是否至少存在一条环形路线。
注意:不同编号的跑道可能连接同一对服务点。因此,两条连接相同服务点的不同跑道也可以构成一条长度为 的环形路线。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
对于每组测试用例:
第一行包含三个整数 (),分别表示服务点数量、原始方案中的跑道数量以及询问数量。
接下来 行,第 行包含两个整数 (,),表示第 条无向跑道连接服务点 和 。
接下来 行,每行包含两个整数 ()。真正的询问区间 按照下列方式计算:
- 令 表示上一次询问的答案。若上一次答案为
Yes,则 ;否则 。在第一组询问前,。 - $k_1=(l'\mathbin{\mathrm{xor}}\mathrm{lastans})\bmod m+1$;
- $k_2=(r'\mathbin{\mathrm{xor}}\mathrm{lastans})\bmod m+1$;
- ;
- 。
其中, 表示本次询问只保留编号位于该区间内的跑道,即:
保证所有测试用例满足:
$$\sum n\le 1.5\times 10^6,\qquad \sum m\le 1.5\times 10^6.$$输出格式
对于每次询问:
- 如果选中的跑道中至少存在一条环形路线,输出一行
Yes; - 否则输出一行
No。
样例输入
1
3 4 3
1 2
1 2
2 3
3 1
1 4
2 3
2 4
样例输出
Yes
No
Yes