zoukankan      html  css  js  c++  java
  • poj2507

    解析几何

    在解析几何中,二分法是常用的。

    题意:给出x,y,c求?长度。

    分析:设两直角边为xx,yy。两对顶三角形相似  =>  yy/c=xx/(xx-c)  =>  c = xx*yy/(xx+yy)

    然后二分查找所求长度即可。可以通过所求长度和x,y,计算出c,若c比真实的大则证明当前的查找值偏小。

    View Code
    #include <iostream>
    #include
    <cstdlib>
    #include
    <cstring>
    #include
    <cmath>
    #include
    <cstdio>
    usingnamespace std;

    #define eps 1.0E-8

    double x, y, c, xx, yy;

    bool ok(double a)
    {
    xx
    = sqrt(x * x - a * a);
    yy
    = sqrt(y * y - a * a);
    double cc = xx * yy / (xx + yy);
    return cc > c - eps;
    }

    int main()
    {
    //freopen("t.txt", "r", stdin);
    while (scanf("%lf%lf%lf", &x, &y, &c) != EOF)
    {
    double l = eps;
    double r = x;
    while (l + eps < r)
    {
    double mid = (l + r) /2;
    if (ok(mid))
    l
    = mid;
    else
    r
    = mid;
    }
    printf(
    "%.3f\n", l);
    }
    return0;
    }
  • 相关阅读:
    合并两个有序链表
    有效括号方法二
    有效括号
    es6 中的模块化
    XMLHttpRequest 对象
    AST
    php读写文件方式
    vue开发中遇到的问题
    sublime操作
    cmd命令
  • 原文地址:https://www.cnblogs.com/rainydays/p/2171001.html
Copyright © 2011-2022 走看看