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的计算用辛普森
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
double k,D,H,B,L,eps=1e-,ans,Eps=1e-;
double F(double X)
{
return sqrt(+4.0*k*k*X*X);
}
double simpson(double l,double r)
{
return (r-l)*(F(l)+F(r)+4.0*F((l+r)/2.0))/6.0;
}
double asr(double l,double r,double eps,double A)
{
double mid=(l+r)/2.0;
double LS=simpson(l,mid),RS=simpson(mid,r);
if (fabs(LS+RS-A)<=15.0*eps) return LS+RS+(LS+RS-A)/15.0;
return asr(l,mid,eps/2.0,LS)+asr(mid,r,eps/2.0,RS);
}
int main()
{int T,t,cnt;
double w;
cin>>T;
while (T--)
{
scanf("%lf%lf%lf%lf",&D,&H,&B,&L);
int n=(B+D-)/D;
w=B/(double)n;
L=L/(double)n;
double l=,r=H;
while (l+Eps<r)
{
double mid=(l+r)/2.0;
k=4.0*mid/(w*w);
if (2.0*asr(,w/2.0,eps,simpson(,w/2.0))-L<Eps) ans=mid,l=mid;
else r=mid;
}
cnt++;
if (cnt>) printf("\n");
printf("Case %d:\n%.2lf\n",cnt,H-ans);
}
}
UVA 3485 Bridge的更多相关文章
- uva 1356 Bridge ( 辛普森积分 )
uva 1356 Bridge ( 辛普森积分 ) 不要问我辛普森怎么来的,其实我也不知道... #include<stdio.h> #include<math.h> #inc ...
- UVA 1356 - Bridge(自适应辛普森)
UVA 1356 - Bridge option=com_onlinejudge&Itemid=8&page=show_problem&category=493&pro ...
- UVAlive 3485 Bridge(抛物线弧长积分)
Bridge A suspension bridge suspends the roadway from huge main cables, which extend from one end of ...
- UVa 10037 - Bridge
题目大意 在一个晚上有N个人过河,他们有一个手电筒,需要有手电筒才能过河,每次最多两个人同时过河,每次过河时间等于速度最慢的那个人的过河时间,让所有人全部过河,花费的时间最少是多少? 分析 如果只有一 ...
- LA 3485 Bridge
自适应辛普森公式模板. #include<algorithm> #include<iostream> #include<cstring> #include<c ...
- UVA 10037 Bridge (基础DP)
题意: 过河模型:有n个人要渡河,每个人渡河所耗时可能不同,只有1只船且只能2人/船,船速取决于速度慢的人.问最少耗时多少才能都渡完河? 思路: n<2的情况比较简单. 考虑n>2的情况, ...
- .Uva&LA部分题目代码
1.LA 5694 Adding New Machine 关键词:数据结构,线段树,扫描线(FIFO) #include <algorithm> #include <cstdio&g ...
- LA 3485 (积分 辛普森自适应法) Bridge
桥的间隔数为n = ceil(B/D),每段绳子的长度为L / n,相邻两塔之间的距离为 B / n 主要问题还是在于已知抛物线的开口宽度w 和 抛物线的高度h 求抛物线的长度 弧长积分公式为: 设抛 ...
- (连通图 模板题 无向图求桥)Critical Links -- UVA -- 796
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
随机推荐
- 【Alpha版本】冲刺阶段 - Day7 - 靠泊
Alpha:指集成了主要功能的第一个试用版本.在这个版本中有些小功能并未实现.事实上很多软件的 Alpha 版本只是在内部使用.给外部用户使用的 Alpha 版本会起一个比较美妙的名字,例如,技术预览 ...
- 项目Alpha冲刺Day8
一.会议照片 二.项目进展 1.今日安排 前端界面框架基本完成,剩下侧边栏与权限相关部分未完成.前端路由异常拦截完成.项目结构与开发流程规定完成.后台开发规定小变更. 2.问题困难 组件的拆分与否和组 ...
- 2017-2018-1 我爱学Java 第六七周 作业
团队六七周作业 完善版需求规格说明书 制定团队编码规范 数据库设计 后端架构设计 TODOList 参考资料 完善版需求规格说明书 <需求规格说明书>初稿不足之处: 1.开发工具写错 2. ...
- Django 分类标签查找
from django.conf.urls import url from django.contrib import admin from blog.views import index,stude ...
- 基于Unity·UGUI实现的RecycleList循环列表UI容器
在UI功能开发实践中,列表UI容器是我们经常使用一种UI容器组件.这种组件就根据输入的数据集合生成对应数据项目.从显示的方向来说,一般就分为水平排布和垂直排布的列表容器两种.列表容器为了在有限的界面空 ...
- 动手写IL到Lua的翻译器——准备
文章里的代码粘过来的时候格式有点问题,原因是一开始文章是在订阅号上写的(gamedev101,文末有二维码),不知道为啥贴过来就没了格式,还要手动删行号,就没搞了. 介绍下问题背景: 小说君正在参与的 ...
- Project facet is Java version 1.7 is not spported
在移植eclipse项目时,如果遇到 "Project facet Java version 1.7 is not supported." 项目中的jdk1.7不支持.说明项目是其 ...
- js中多维数组转一维
法一:使用数组map()方法,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组. var arr = [1,[2,[[3,4],5],6]]; function unid(arr){ v ...
- slf4j 与 log4j2 基本用法
简单的说 log4j2 是log4j2的升级版,解决了部分性能问题和部分死锁问题,其使用方式与使用配置与log4j相同. 建议使用maven依赖直接使用log4j2 <dependency> ...
- 彻底搞懂shell的高级I/O重定向
本文目录: 1.1 文件描述符(file description,fd) 1.2 文件描述符的复制 1.3 重定向顺序很重要:">file 2>&1"和&quo ...