题目链接:https://cn.vjudge.net/problem/UVALive-7198

题意

有悬链线方程$ f(x)=a \cdot cosh(\frac{s}{a}) $,

现有两个电线杆高p,水平距离d,上有电线。

这两个电线杆之间要通火车,这要求电线曲线最低点要离地面高4.2m。

给出p, d问电线长度L最长多少?

思路

简单积分题。

首先当然把参数a求出来,这里参数a只能是规定曲线的宽窄(很多人觉得a就是地面距最低点的距离,然而这俩没关系)。

有这样的方程:$ 4.2=p+a-a \cdot cosh(\frac{d}{2a}) $

有了这个方程就可以求a了,为了方便求a,我们可以研究一下函数关于a的单调性。

直接输出值看看得是单调就完事了,但是为了严谨,比赛结束求一下还是好的。

单调函数,这个a二分就好了。

电线长度就只能积分求解:

\[\begin{aligned}
& 2\int^{\frac{d}{2}}_{0} \sqrt{dx^2+dy^2} \\
& =2\int^{\frac{d}{2}}_{0} \sqrt{1+(\frac{dy}{dx})^2} dx\\
& =\int^{\frac{d}{2}}_{0} \sqrt{4+(e^{\frac{x}{a}}-e^{-\frac{x}{a}})^2} dx\\
& =\int^{\frac{d}{2}}_{0} e^{-\frac{x}{a}} \sqrt{e^{\frac{4x}{a}}+2e^{\frac{2x}{a}}+1} dx \\
& =\int^{\frac{d}{2}}_{0} e^{\frac{x}{a}}+e^{-\frac{x}{a}} dx \\
& =a(e^{\frac{d}{2a}}-e^{-\frac{d}{2a}})
\end{aligned}
\]

其中最后一步猜都可以猜出来,高中生水平做这个应该没有大问题。

(当年高二手推悬链线方程-_-,学校里写的研究报告到现在还没有进行评奖...)

提交过程

WA 注意向下取整
AC

代码

#include <cmath>
#include <cstdio>
#include <cstring>
const double eps2=1e-6, eps=1e-8;
double p, d;
bool equal(double a, double b){
return (a-b)<eps && (b-a)<eps;
} double func(double a){
return a+p-a*cosh(d/(2*a));
} double func2(double a){
return a*(exp(d/(2*a))-exp(-1*d/(2*a)));
} double solve(void){
double l=1, r=1e4; while (l<r){
double mid=(l+r)/2;
if (func(mid)<4.2) l=mid;
else r=mid; if (r-l<eps2) return r;
}
} int main(void){
while (scanf("%lf", &p)==1){
if (equal(p, -1)) break;
scanf("%lf", &d); double a=solve();
printf("%0.3lf\n", floor((func2(a)*1000))/(double)1000);
} return 0;
}
Time Memory Length Lang Submitted
None None 835 C++ 5.3.0 2018-08-20 03:38:48

UVALive-7198 Tall orders 微积分 二分的更多相关文章

  1. Gym 101194D / UVALive 7900 - Ice Cream Tower - [二分+贪心][2016 EC-Final Problem D]

    题目链接: http://codeforces.com/gym/101194/attachments https://icpcarchive.ecs.baylor.edu/index.php?opti ...

  2. UVALive 6656 Watching the Kangaroo --二分

    题意:给你一些区间,再查询一些点,问这些点与所有区间形成的最小距离的最大值.最小距离定义为:如果点在区间内,那么最小距离为0,否则为min(pos-L[i],R[i]-pos). 解法:当然要排个序, ...

  3. UVALive 3635 Pie 切糕大师 二分

    题意:为每个小伙伴切糕,要求每个小盆友(包括你自己)分得的pie一样大,但是每个人只能分得一份pie,不能拿两份凑一起的. 做法:二分查找切糕的大小,然后看看分出来的个数有没有大于小盆友们的个数,它又 ...

  4. UVALive 2949 Elevator Stopping Plan(二分 + 贪心)

    ZSoft Corp. is a software company in GaoKe Hall. And the workers in the hall are very hard-working. ...

  5. UVALive 5903 Piece it together 二分匹配,拆点 难度:1

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  6. UVALive - 3211 Now or later (二分+2SAT)

    题目链接 题意:有n架飞机,每架飞机有两个着陆时间点可以选,要求任意两架飞机的着陆时间之差不超过k,求k的最大值. 解法:由于每架飞机都有两个选择,并且必选且只能选其中一个,时间冲突也是发生在两架飞机 ...

  7. UVALive - 7427 the math 【二分匹配】

    题目链接 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  8. UVaLive 3971 Assemble (水题二分+贪心)

    题意:你有b元钱,有n个配件,每个配件有各类,品质因子,价格,要每种买一个,让最差的品质因子尽量大. 析:很简单的一个二分题,二分品质因子即可,每次计算要花的钱的多少,每次尽量买便宜且大的品质因子. ...

  9. UVALive 4223 / HDU 2962 spfa + 二分

    Trucking Problem Description A certain local trucking company would like to transport some goods on ...

随机推荐

  1. 51nod-活动安排问题之二

    有若干个活动,第i个开始时间和结束时间是[Si,fi),活动之间不能交叠,要把活动都安排完,至少需要几个教室? 分析:能否按照之一问题的解法,每个教室安排尽可能多的活动,即按结束时间排序,再贪心选择不 ...

  2. php 返回某个月的 每周几有几天

    不得不承认,这真是一个奇葩的需求,无奈写个类凑活用用. 输入日期格式或者 时间戳,返回当月有多少个周一.周二.周三.....周日; 思路就是 找到这个月有多少天,在便利判断. 稍微考虑下闰年的情况 前 ...

  3. @PostConstruct 和 @PreDestroy 指定初始化和销毁方法

    通过实现 @PostConstruct 和 @PreDestroy 注解,也可以指定 bean 的初始化和销毁方法 一.Student 类 public class Student{ public S ...

  4. asp.net mvc--传值-前台->后台

    前端传值->后端 一.Model Binding 方式 前台 @model ADMgr.Web.Models.ListModel 后台 [HttpPost] public ActionResul ...

  5. JavaScript 中对变量和函数声明提前的演示样例

    如题所看到的,看以下的演示样例(能够使用Chrome浏览器,然后F12/或者右键,审查元素.调出开发人员工具,进入控制台console输入)(使用技巧: 控制台输入时Shift+Enter能够中途代码 ...

  6. SQL语法精讲(包括建库、建表、建视图、查询、增加、删除、)

    SQL语法精讲(包括建库.建表.建视图.查询.增加.删除.修改) SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELE ...

  7. 分享:Android系统的经常使用权限整理

    1.ACCES_NETWORK_STATE      同意应用程序获取网络状态信息的权限 2.ACCESS_WIFI_STATE          同意应用程序获取Wi-Fi网络状态的权限 3.BAT ...

  8. openfire 安装部署

    1. openfire安装和配置 本文介绍openfire 在linux上安装部署过程 linux上有两种安装方式,一个是RPM包方式.还有一个是tar.gz压缩包方式, 官方推荐採用RPM包方式,会 ...

  9. android帧动画,移动位置,缩放,改变透明度等动画解说

    1.苦逼的需求又来了,须要实现一些动画效果,第一个想到的是播放gif图片,可是这样会占包的资源,而且清晰度不高,于是想着程序实现,自己用帧动画+缩放+移动+透明度 实现了一些想要的效果,这里跟大家分享 ...

  10. cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第一步---開始界面&amp;关卡选择

    /* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦.他说:随便写,第一别全然照搬代码:第二能够说 ...