简单的几何水题,就是给出两个等边三角形的Size,用一个矩形去cover这两个三角形。求这样的矩形的最小面积。
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int i, t;
scanf("%d", &t);
while ( t -- )
{
int s1, s2;
double ans = 0;
scanf("%d%d", &s1, &s2);
if ( s1 > s2 ) swap(s1, s2);
if ( s1 == s2 ) ans = sqrt(3) * s1 * s1 / 4 * 3;//两个等边三角形直接边对边,变成平行四边形那样
else if ( s1 * 2 <= s2 ) ans = sqrt(3) * s2 * s2 / 2;//取变长较长的作为矩形的底边
else if ( s1 * 2 > s2 ) ans = sqrt(3) * s2 / 2 * ( s1 + s2 * 0.5);
printf("%.3lf\n", ans);
}
return 0;
}
本文探讨了如何使用一个矩形覆盖两个等边三角形的问题,并通过编程实现了寻找该矩形最小面积的方法。针对不同情况,如两三角形边长相等、一倍关系或介于两者之间的多种情况进行了详细讨论。


被折叠的 条评论
为什么被折叠?



