天天看点

区间合并 --- Codeforces 558D : Gess Your Way Out ! II D. Guess Your Way Out! II Problem's Link: http://codeforces.com/problemset/problem/558/D

Mean: 

一棵满二叉树,树中某个叶子节点是出口,目的是寻找这个出口。再给定Q个询问的结果,每个结果告诉我们在第i层中(l,r)覆盖的叶结点是否包含出口。

区间合并 --- Codeforces 558D : Gess Your Way Out ! II D. Guess Your Way Out! II Problem's Link: http://codeforces.com/problemset/problem/558/D

analyse:

基本思路:多个区间求交集。

具体实现:

对于每一个询问,把它转化到最底层。并且把不在(l,r)区间的询问改为在(最左边,l-1)和(r+1,最右边)的形式,这样一来全部都变成了在(l,r)区间的描述。

区间统计:

对左右区间起点和终点组成的集合进行排序。然后找到答案存在的区间,如果区间长度=1,答案唯一;长度>1,答案不唯一;长度=0,无解。

Trick:会爆int。

Time complexity: O(n)

Source code: 

继续阅读