The 2023 ICPC Asia EC Regionals Online Contest (I) - Problem C. Multiply Then Plus

离线询问,建立时间线段树,那么每条直线存在的时间是一个区间,对应时间线段树上O(logn)个节点,每个询问对应时间线段树上某个叶子到根的O(logn)个节点。

对于时间线段树中的某个节点,它代表的直线集合是静态的,问题转化为静态区间查询。对于静态区间查询的子问题,可以通过线段树记录区间凸壳的方式在O(nlogn)的时间内预处理出每个线段树区间对应的凸壳,父节点的凸壳由两个子节点的凸壳线性归并得到。对于每个静态区间查询,在线段树上找到O(nlogn)个节点,在每个节点记录的凸壳上二分查找答案。

如此一来,按时间分治、静态区间线段树以及凸壳上二分都有log,总时间复杂度为O(nlog3n),不能接受。如果将所有询问按x提前排好序的话,那么可以均摊地在O(1)时间内找到凸壳上的答案,去掉一个log

时间复杂度O(nlog2n)

 

  

posted @   Claris  阅读(169)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2016-10-05 XIII Open Cup named after E.V. Pankratiev. GP of Asia and South Caucasus
2015-10-05 BZOJ3836 : [Poi2014]Tourism
点击右上角即可分享
微信分享提示