You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

4个正方形行李箱装箱最小边长计算及Python代码错误排查

问题描述

A、B、C、D四人出行,每人携带一个正方形底面的行李箱。四人计划将所有行李箱放入一个大正方形盒中,行李箱与大盒均为正方形底面的长方体,且所有物品的高度完全一致,因此仅需计算大正方形盒的底面边长最小值,确保四个行李箱可无重叠放入。

输入输出格式
  • 输入格式:第一行输入四个空格分隔的整数,分别对应四个行李箱的底面边长
  • 输出格式:输出单个整数,表示所需大正方形盒的最小边长
示例

输入:2 2 2 2
输出:4

错误原因排查

你的代码只校验了「四个行李箱的总面积不超过大正方形面积」这一个条件,忽略了正方形形状的物理摆放限制:总面积满足要求不代表四个行李箱一定能无重叠放入。
举个典型的失败用例:输入为1 1 5 5,四个行李箱总面积为52,你的代码会计算得到ceil(sqrt(52))=8作为结果,但实际两个边长为5的行李箱无法放进边长为8的正方形中,最小需要边长为10的正方形才能放得下,这就是私有用例失败的核心原因。

正确解法思路
  1. 先将四个输入的边长按从小到大排序,记为s1 ≤ s2 ≤ s3 ≤ s4
  2. 最小大正方形边长为max(s3 + s4, ceil(sqrt(s1² + s2² + s3² + s4²)))
    基于这个逻辑修改代码即可通过所有用例。

内容的提问来源于stack exchange,提问作者Amazon King

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:36:06