当前位置: 首页 > news >正文

当我们红尘作伴,活得潇潇洒洒

为了证明我是真的睡不着而非摆到凌晨三点,先来一点正经东西。

平面等腰直角三角形加,查询矩形和。

经典问题,但我刚刚才会。考虑矩形加矩形和是咋做的,通过一堆拆拆拆把 4-side 变成 2-side,然后扫描线扫掉一维,数据结构维护另一维。那等腰直角三角形肯定也要拆拆拆。认为下面查的都是 2-side 矩形。等腰直角三角形的拆拆拆是拆成一种 2-side 的等腰直角三角形,考虑这种三角形怎么贡献到询问上。不妨用一个半平面交 \((x=0),(y=b),(y=-x+a+b)\) 来刻画这个三角形,顶点为 \((a,b)\)。注意到一般拆询问矩形的方法还不太好用,因为交不是一个很好的图形,将询问矩形拆成 \(\{(x,y)|x\geq X,y\geq Y\}\) 的 2-side 矩形。此时交一定是一个等腰直角三角形!分情况讨论,将牛牛的多项式乘法拆开维护二次项和一次项即可,限制来源于空间维和时间维,一共三维,cdq 维护。

注意到还有一种情况是三角形长成 \((x=0),(y=b),(y=x-a+b)\),那此时询问矩形就需要拆成 \(\{(x,y)|x\leq X,y\geq Y\}\),剩下类似。总之多做几遍 cdq 总能解决问题的。

感觉我一直学的是假的 cdq,很少听人把分治解释成降维的手段,但这才是分治的本质。

可以发现查询平面等腰直角三角形和也是可以做的,无非是多了几种情况。

\(1\log\) 三维偏序

超级无敌厉害。什么时候忘了再来写。


http://www.zskr.cn/news/2729.html

相关文章:

  • 二叉树理论
  • 栈和队列总结
  • Python-课后题题目-1.1编程世界初探
  • 引用类型
  • CF1237C2
  • linux环境docker离线镜像elasticsearch-7.17.3镜像资源
  • part 4
  • systemctl的service脚本写法
  • 9月份美联储的降息利好
  • 口胡记录
  • Day16内存分析及初始化
  • Vue3项目中集成AI对话功能的实战经验分享
  • CSP 赛前周记
  • Day16
  • 20250906
  • 在用灵魂去感受另一个灵魂的震颤
  • 百粉粉福
  • 202404_QQ_ZIP嵌套
  • 【初赛】图 - Slayer
  • POJ 2566 Bound Found
  • CF1140F Extending Set of Points
  • Lark免费企业邮箱推荐
  • 耶日奈曼:置信区间与假设检验的奠基者
  • vue3 使用 i18n-auto-extractor库 实现国际化
  • 20231314许城铭课上测试:Linux命令实践(AI)
  • reLeetCode 热题 100-3 最长连续序列 - MKT
  • pdf在纯html5移动端下不显示
  • 面试记录
  • GAS_Aura-Aura Input Component
  • bitset 相关记录