摘要: http://codeforces.com/problemset/problem/91/E 很简单的题意,给出n条直线编号分别为1~n,再给去m个询问,要求出第L条~第R条直线,在x=xi时最高的是那一条。 作为一个弱菜我只想到了,O(n*n½ log(n½))的暴力方法,=。=,就是分块sqrt(n)个区域,将询问离线按x坐标递增,每个块内用堆维护求出当前x坐标下最高的直线编号。后来问了我队友,他告诉我用线段树可以处理,相当于线段树每个节点(li,ri),上维护一个下凸曲线,每个节点的曲线可以由其两个子结点线性合并出来,故每层复杂度是O(n) ,总复杂度O(n log(n 阅读全文
posted @ 2012-12-13 17:05 lzqxh 阅读(266) 评论(0) 推荐(0) 编辑