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

leetcode 3453(二分法)

3453: 分割正方形Ⅰ

*思路:浮点二分

squares[i] = [xi, yi, li]表示一个与 x 轴平行的正方形的左下角坐标和正方形的边长

所有正方形的面积之和为

枚举正方形 (xi​,yi​,li​),如果水平线在正方形底边上方,即 yi​<y,那么这个正方形在水平线下方的面积为

否则在水平线下方的面积为 0。

细节:二分的左边界为 0,右边界为 max(yi​+li​)。这里无需讨论开闭区间,因为我们算的是小数。推荐的写法是固定一个循环次数,因为浮点数有舍入误差,可能算出的 mid 和 left 相等,此时 left=mid 不会更新 left,导致死循环。

循环次数:

for(int i=0;i<47;i++){ double mid=(left+right)/2; (check(mid)? right:left)=mid; } return (left+right)/2; //取中点误差极小

固定做 47 次二分(计算过程如上)

  • 47 次可以把区间长度缩小到(max_y-0)/2^47,对于double的 53 位有效精度来说已经足够

class Solution { public: double separateSquares(vector<vector<int>>& squares) { long long tot_area=0; int max_y=0; for(auto& sq:squares){ int l=sq[2]; //正方形边长 tot_area+=(long long)l*l; max_y=max(max_y,sq[1]+l); } auto check=[&](double y)->bool{ double area=0; for(auto& sq:squares){ double yi=sq[1]; if(yi<y){ double l=sq[2]; area+=l*min(y-yi,l); } } return area>=tot_area/2.0; //返回true,说明可行y可以更小 }; double left=0,right=max_y; for(int i=0;i<47;i++){ double mid=(left+right)/2; (check(mid)? right:left)=mid; } return (left+right)/2; //取中点误差极小 } };
http://www.jsqmd.com/news/239731/

相关文章:

  • 【建议收藏】大模型学习路径详解:从零基础到高薪AI工程师,系统化学习指南
  • 为什么GLM-4.6V-Flash-WEB部署失败?一键脚本使用避坑指南
  • c语言之kfifo队列
  • 程序员如何转行大模型?一份详尽的学习路线与实战指南,一份详细攻略_转行大模型学习路线
  • 技术日报|Claude Code超级能力库superpowers登顶日增1538星,自主AI循环ralph爆火登榜第二
  • wen3-VL多模态检索模型详解:Embedding与Reranker架构、训练与应用(必学收藏)
  • 从工程角度分析:雷小兔类AI工具,究竟应对了论文写作的哪些关键难点?
  • 码住!2026年程序员接单实战指南一览
  • ControlNet驱动的VR扩散模型生成研究:基于实战项目的系统教程
  • 磁条卡的详细介绍以及读写方法
  • 销售管理的五个阶段
  • 探索车桥耦合与地震波浪荷载联合仿真之旅
  • 《行人重识别新突破:深度解析DG-Net(ReID)中的LSGAN损失与教师网络机制》
  • 2026年网络安全趋势深度解析:AI驱动攻防变革,零信任与量子安全成破局关键
  • 学习笔记——51单片机学习
  • 2026必备!8个AI论文软件,自考学生轻松搞定毕业论文!
  • YOLOv11主干网络创新:基于反向传播优化的EMO架构实践详解
  • 基于单片机的车辆超速系统设计(有完整资料)
  • 数据模型:让数据“开口说话”的智慧翻译官
  • YOLOv11主干网络优化:基于Retinexformer的低照度图像增强方案
  • 【dz-1139】基于物联网的花烛智能养护系统
  • MediaPipe Hands部署详解:零基础搭建手势识别系统
  • YOLOv11低照度图像增强主干网络PE-YOLO:技术原理与实现详解
  • JBoltAI与SpringAI:技术架构对比与选择思考
  • FP5207兼容替代芯片CS5717:2.7V-36V宽输入,单节锂电池适用,异步升压DCDC
  • 突破低光照检测瓶颈:PE-YOLO核心技术解析与实战应用
  • 【dz-1136】家用空气质量检测系统
  • 私有化部署B2B订货系统:告别订货混乱
  • 【dz-1137】基于单片机的智能停车场系统设计
  • 拯救者 Legion Go 显卡控制台报错?1 招解决版本不兼容问题,附驱动更新指南