BZOJ4025二分图 传送门
Description
神犇有一个n个节点的图。因为神犇是神犇,所以在T时间内一些边会出现后消失。神犇要求出每一时间段内这个图是否是二分图。这么简单的问题神犇当然会做了,于是他想考考你。
Input
输入数据的第一行是三个整数n,m,T。
第2行到第m+1行,每行4个整数u,v,start,end。第i+1行的四个整数表示第i条边连接u,v两个点,这条边在start时刻出现,在第end时刻消失。
Output
输出包含T行。在第i行中,如果第i时间段内这个图是二分图,那么输出“Yes”,否则输出“No”,不含引号。
Sample Input
3 3 3
1 2 0 2
2 3 0 3
1 3 1 2
Sample Output
Yes
No
Yes
Solution
经典的CDQ嵌套数据结构
对于一条边,若它的存在区间为(L,R);
若在CDQ时,一条边横跨整个区间,则将这条边的影响加入到当前数据结构中
若该边在左侧,则将它放在加入左侧的队列,右侧同;
若该边横跨mid,则将它拆为(L,mid),(mid+1,R);
搞完了以后,再处理左右区间,处理完后,还原数据结构
本题维护是否有奇环,用并查集,判定是否两个点到图中一个点(并查集的根)距离是否为奇
1 |
|