BZOJ 4311 向量

发布于 2017-12-21  197 次阅读


题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4311

题意:

你要维护一个向量集合,支持以下操作:
1. 插入一个向量 (x,y)
2. 删除插入的第 i 个向量
3. 查询当前集合与 (x,y) 点积的最大值是多少。如果当前是空集输出 0

考虑点积的意义,可以看做是一条无限长的与给定向量垂直的直线从无穷远扫描过来,卡到的第一个点。
显然是凸壳上的点,所以维护凸包然后三分下即可。
发现有删除操作,于是线段树分治干掉。
只有插入操作了,比较 naive 可以上平衡树维护凸包...
发现答案具有传递性,即在每个凸壳上找答案,最后取最优解即为最优解。


 


一个非常弱的准退役OIER