很久都没有写过题解了

题意描述

求一个矩形内最大的正三角形的边长。

做法

很多,就不给代码了。

下面 a 为宽,b 为长。

并且显然,三角形是矩形的内接三角形且一个顶点在矩形顶点上最优。

二分角度

首先来个分讨:

  1. 如果 2a3b 直接以 a 为高,输出 23a3 即可。
  2. 否则二分三角形与矩形夹角角度,具体参考这篇题解

二分长度

首先来个分讨:

  1. 同二分角度。
  2. 否则二分三角形另一个顶点与矩形的一个顶点的距离,理论可做。

解方程

还是分讨,同二分角度。

设正三角形的边长为 x,我们可以列出下面这个方程: (a2x2b2)2+(b2x2a2)2=x2 稍微解亿解,就可以得到下面这个符合题意的解: x=2a2+b23ab

二分方程的解

上接解方程。

不会解方程?没关系,我们可以二分。

(f(x)=(a2x2b2)2+(b2x2a2)2x2 图像,a=1b=1 时)

可以观察到符合题意的解是最小的正整数解。

我们只需要控制二分的上限即可二分。

瓜豆原理

学过初中数学没?

根据画图可知,当正三角形的一个端点被固定在一点,另一点在一条直线上面移动,那么剩下的那个点的轨迹一定是一条直线。(自己去证)

那么我们现在已知定点坐标和动点的路径,那么可以算出剩下那个点的轨迹,找到与矩形的交点的坐标,根据距离公式算出解即可。