当前位置: 首页 > 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.wxhsa.cn/company.asp?id=1602

相关文章:

  • 诡异的mysql8的问题
  • 二叉树理论
  • 支付中心的熔断降级要怎么做
  • 协议版iM蓝号检测,批量筛选iMessages数据,无痕检测是否开启iMessage服务
  • 栈和队列总结
  • 工业互联网认知实训台-一句话介绍
  • 湾区杯 SilentMiner WP
  • Python-课后题题目-1.1编程世界初探
  • Python-课后题题目-1.2初识python语言
  • node和npm相关的记录
  • 在Spring boot 中使用@master 设置主从数据库
  • 设计模式-装饰器模式 - MaC
  • 【API接口】最新可用河马短剧接口
  • 第 16 章反射(reflection)
  • 自我介绍+软工5问
  • 电容器+动生电动势+自由落体模型
  • 引用(reference)
  • 设计模式-组合模式 - MaC
  • 【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态
  • tmux 使用教程
  • 引用类型
  • CF1237C2
  • 力扣215. 数组中的第K个最大元素
  • 设计模式-桥接模式 - MaC
  • linux环境docker离线镜像elasticsearch-7.17.3镜像资源
  • Python 降序排序:轻松搞定列表、字典和自定义对象
  • 第02周 预习、实验与作业:Java基础语法2、面向对象入门
  • part 4
  • systemctl的service脚本写法