zoukankan      html  css  js  c++  java
  • #10016 灯泡(数学)

    【题目描述】

        

    相比 wildleopard 的家,他的弟弟 mildleopard 比较穷。他的房子是狭窄的而且在他的房间里面仅有一个灯泡。每天晚上,他徘徊在自己狭小的房子里,思考如何赚更多的钱。有一天,他发现他的影子的长度随着他在灯泡和墙壁之间走到时发生着变化。一个突然的想法出现在脑海里,他想知道他的影子的最大长度。

    无标题.jpg

    【题目链接】

        https://loj.ac/problem/10016

    【算法】

        设对应的角度为θ,列出墙上有影子情况下函数关系:D+H-( (H-h)/tanΘ + DtanΘ)发现是对勾函数,数形结合讨论一波极值点位置和tanΘ范围的关系同时影子只有地上部分时显然长度递增。就不用三分法求极值点了。

    【代码】

        

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int T;
     4 int main()
     5 {
     6     scanf("%d",&T);
     7     while(T--) {
     8         double H,h,D,ans;
     9         scanf("%lf%lf%lf",&H,&h,&D);
    10         if(sqrt((H-h)/D)>=H/D) ans=h*D/H;
    11         else if(sqrt((H-h)/D)<=(H-h)/D) ans=h;
    12         else ans=D+H-2*sqrt((H-h)*D);
    13         printf("%.3f
    ",ans);
    14     }
    15     return 0;
    16 }
  • 相关阅读:
    寒假特训——搜索——H
    寒假特训——I
    寒假训练——搜索 K
    three.js 加载STL文件
    three.js 加载3DS 404 文件找不到
    C# 请求数据 方式1
    学习 一个简单的业务处理
    ABP 05 创建Model 以及 相应的增删改查
    ABP 04 用户的创建
    ABP 00 常用知识
  • 原文地址:https://www.cnblogs.com/Willendless/p/9507002.html
Copyright © 2011-2022 走看看