UVA 3485 Bridge
题目大意
你的任务是修建一座大桥。桥上等距地摆放着若干个塔,塔高为H,宽度忽略不计。相邻两座塔之间的距离不能超过D。塔之间的绳索形成全等的对称抛物线。桥长度为B,绳索总长为L,如下图所示求建最少的塔时绳索的最下端离地的高度y。
【输入格式】
输入第一行为测试数据组数T。每组数据包含4个整数D,H,B,L(B<=L)。
【输出格式】
对于每组数据,输出绳索底部离地高度,保留两位小数。
间隔数为n=[(B+D-1)/D],所以间隔和每个间隔的绳子长分别为w=B/n,L=L/n
根据微积分,一个二次函数的弧长len=∫√(1+[f'(x)]2)
不懂看https://wenku.baidu.com/view/7c3f0a8a02d276a200292e12.html
因为要确定y=kx2的k,找到可以使len=L的k,len的计算用辛普森
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 double k,D,H,B,L,eps=1e-5,ans,Eps=1e-5; 8 double F(double X) 9 { 10 return sqrt(1+4.0*k*k*X*X); 11 } 12 double simpson(double l,double r) 13 { 14 return (r-l)*(F(l)+F(r)+4.0*F((l+r)/2.0))/6.0; 15 } 16 double asr(double l,double r,double eps,double A) 17 { 18 double mid=(l+r)/2.0; 19 double LS=simpson(l,mid),RS=simpson(mid,r); 20 if (fabs(LS+RS-A)<=15.0*eps) return LS+RS+(LS+RS-A)/15.0; 21 return asr(l,mid,eps/2.0,LS)+asr(mid,r,eps/2.0,RS); 22 } 23 int main() 24 {int T,t,cnt; 25 double w; 26 cin>>T; 27 while (T--) 28 { 29 scanf("%lf%lf%lf%lf",&D,&H,&B,&L); 30 int n=(B+D-1)/D; 31 w=B/(double)n; 32 L=L/(double)n; 33 double l=0,r=H; 34 while (l+Eps<r) 35 { 36 double mid=(l+r)/2.0; 37 k=4.0*mid/(w*w); 38 if (2.0*asr(0,w/2.0,eps,simpson(0,w/2.0))-L<Eps) ans=mid,l=mid; 39 else r=mid; 40 } 41 cnt++; 42 if (cnt>1) printf("\n"); 43 printf("Case %d:\n%.2lf\n",cnt,H-ans); 44 } 45 }
转载于:https://www.cnblogs.com/Y-E-T-I/p/8288066.html
UVA 3485 Bridge相关推荐
- uva 10037——Bridge
题意:有一个桥,每次只能两个人拿着手电筒通过然后一个人拿着电筒回来,然后让新人过去,给出每个人的过桥时间,问最后总的最小时间. 思路:贪心.1个人2个人好考虑,排好序,三个人是13,1,12,大于3个 ...
- π-Algorithmist分类题目(1)
原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(1) Sorting UVAL ...
- sicily题目分类
sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...
- [sicily]部分题目分类
sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...
- Sicily 题目分类
依照自己水平挑着做→ →~~ 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 ...
- 编程题目分类(剪辑)
1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代 ...
- 【UVA - 10037】Bridge(过河问题,经典贪心)
题干: 题目大意: 有N个人要过桥,每个人速度不同,只有一个手电筒,每次最多只能过去两个人,问所有人最短的过桥时间为多少 解题报告: 首先让最快的两个人最后过,然后我们分奇偶考虑,分别处理到剩下三个人 ...
- (连通图 模板题 无向图求桥)Critical Links -- UVA -- 796
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVa Online Judge 工具網站
UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...
最新文章
- matlab绘制bland-altman,制作Bland-Altman图的步骤和程序(以SPSS作图为例讲解)
- neo4j 查询同一节点的两个上级_WhatRoute for Mac(互联网流量诊断查询工具)
- Shell入门(十)之echo
- 匿名函数、冒泡排序,二分法, 递归
- Storm精华问答 | Storm如何连接MySQL?
- Qt图形界面编程入门(创建一个简单的程序)
- Vue (响应式原理-模拟-1-vue)
- Map/Reduce
- vs2005配置c语言连接mysql
- SAP License:赛锐信息访谈启示录(二)
- 剑指|| offer1整数除法
- Thread 类的属性和方法
- ‘net’ 不是内部命令或外部命令,也不是可运行的程序或批处理文件
- (18)全民小视频引流脚本模块化开发12-任务总数与时间间隔By飞云脚本学院
- Go语言之flag基础用法
- 工作多年,分享16条实用职场经验给你
- 加速ubuntu开机速度
- RCLAMP0544T 国产替代上海雷卯ULC0544T
- 如何下载PLSQL Developer历史版本?
- 智能指纹门锁芯片方案技术开发
热门文章
- 没有required_springboot-使用OpenAPI之后我再也没有写过接口文档
- android blcr 编译,BLCR 基本环境搭建【zz~】
- 华为服务器如何修改ftp密码,ftp怎么改服务器密码
- linux grpc,grpc linux下的编译使用-Go语言中文社区
- 图论--二分图最大匹配(匈牙利算法)--模板
- elasticsearch的分布式架构原理
- 设计模式大集锦 程序员面试全攻略
- windows远程访问树莓派方法(+树莓派启动方法)
- 【Transformer】Are Transformers More Robust Than CNNs?
- 【Transformer】Deformable DETR: deformable transformers for end-to-end object detection