将 A 与 B 放在一起从小到大排序,若最后排出来的形式为 \underbrace{BABABBA\dots}_{k个A,k个B}B_xA_x\dots 必然无解。每个 A_i 对一个前缀里的所有 B 连边然后删掉边 (A_i,B_i)。根据 hall 定理,这 k 个 A 与 A_x 的邻集大小为 k<k+1,则不存在完美匹配。
发现好像构造不出来其他的无解形式了,尝试归纳上述情况:存在 i 满足 B_i,A_i 相邻且 B_i 之前的 A 与 B 数量相等。
将第 i 个学生看成区间 [B_i,A_i],结论等价于存在一个区间与其他区间的交集为空。预处理 L_i,R_i 分别表示 i 左边最近的与 i 有交的区间, i 右边最近的与 i 有交的区间(不存在则分别为极小/极大值),合法要求 \forall i\in[l,r],[l,r]\notin(L_i,R_i)。