Problem
二分图
Description
神犇有一个个节点的图。
因为神犇是神犇,所以在T时间内一些边会出现后消失。
神犇要求出每一时间段内这个图是否是二分图。
这么简单的问题神犇当然会做了,于是他想考考你。
Input
输入数据的第一行是三个整数。
第行到第行,每行4个整数,表示第条边连接两个点,这条边在时刻出现,在第时刻消失。
Output
输出包含行。在第行中,如果第时间段内这个图是二分图,那么输出Yes
,否则输出No
。
Sample Input
1 | 3 3 3 |
Sample Output
1 | Yes |
Explanation
时刻,出现两条边和。
第时间段内,这个图是二分图,输出。
时刻,出现一条边。
第时间段内,这个图不是二分图,输出。
时刻,和两条边消失。
第时间段内,只有一条边,这个图是二分图,输出。
HINT
,,,,。
标签:线段树分治
并查集
Solution
事实证明,线段树不仅是一种数据结构,更是一种思想。
先考虑不带存在时间的版本,可以直接用带权并查集维护。
我们将整个时间想成一段线段,那么其中的任意时间段都是一条更短的线段,显然是可以和线段树一样分作段。那么我们对每条边存在的时间区间做这种拆分,在这个区间内的并查集中分别加入这条边然后判断询问。
像整体二分一样分治处理即可。
Code
1 |
|