为啥编译错误···呜呜┭┮﹏┭┮
  • 板块学术版
  • 楼主X666999Y
  • 当前回复4
  • 已保存回复5
  • 发布时间2024/5/8 17:41
  • 上次更新2024/5/8 20:53:33
查看原帖
为啥编译错误···呜呜┭┮﹏┭┮
1022961
X666999Y楼主2024/5/8 17:41

题目:P10410 「QFOI R2」寺秋山霭苍苍 代码:

#include <iostream>  
#include <cmath>  
#include <iomanip>  
  
using namespace std;  
  
// 计算两点之间的距离  
double distance(double x1, double y1, double x2, double y2) {  
    return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));  
}  
  
// 计算三角形DEF的面积  
double calculateArea(double p, double AB, double BC, double CA) {  
    // 直接使用p比例计算DEF的边长  
    double DF = p * AB;  
    double DE = p * BC;  
    double EF = p * CA;  
  
    // 使用海伦公式计算三角形DEF的面积  
    double pDEF = (DF + DE + EF) / 2;  
    return sqrt(pDEF * (pDEF - DF) * (pDEF - DE) * (pDEF - EF));  
}  
  
int main() {  
    double l, r, x1, y1, x2, y2, x3, y3;  
    cin >> l >> r >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;  
  
    double AB = distance(x1, y1, x2, y2);  
    double BC = distance(x2, y2, x3, y3);  
    double CA = distance(x3, y3, x1, y1);  
  
    double minArea = numeric_limits<double>::max(); // 初始化最小面积为无穷大  
    double bestP = 0; // 记录使得面积最小的p值  
  
    // 遍历p的取值范围,找到最小面积  
    for (double p = l; p <= r; p += 0.0001) { // 根据需要调整步长  
        double area = calculateArea(p, AB, BC, CA);  
        if (area < minArea) {  
            minArea = area;  
            bestP = p;  
        }  
    }  
  
    // 输出最小面积,保留8位小数  
    cout << fixed << setprecision(8) << minArea << endl;  
  
    return 0;  
}
2024/5/8 17:41
加载中...