UVA 1356 - Bridge

option=com_onlinejudge&Itemid=8&page=show_problem&category=493&problem=4102&mosmsg=Submission+received+with+ID+13932460" target="_blank" style="">题目链接

题意:一个桥长为B,桥上建电线杆。杆高为H,两杆之间距离不超过D。电线杆总长为L,杆子都是等距的,如今建最少的电线杆。问这时候电线离地面高度是多少

思路:二分高度,求出电线长,推断长度够不够就可以。那么问题就变成怎么求弧长

求弧长公式为∫w/201+(f′(x)2)−−−−−−−−−−√,

建立坐标系使得f(x)=ax2,带入点(w/2,
h)求出a。得到方程

那么问题就变成怎么求这个积分了

利用辛普森自适应法。去求就可以

代码:

#include <cstdio>
#include <cstring>
#include <cmath> const double eps = 1e-8; int t;
double d, h, b, l, m, w; inline double F(double x) {
double a = 4 * m / w / w;
return sqrt(1 + 4 * a * a * x * x);
} inline double simpson(double fa, double fb, double fc, double a, double c) {
return (fa + 4 * fb + fc) * (c - a) / 6;
} double asr(double a, double b, double c, double esp, double A, double fa, double fb, double fc) {
double ab = (a + b) / 2, bc = (b + c) / 2;
double fab = F(ab), fbc = F(bc);
double L = simpson(fa, fab, fc, a, b), R = simpson(fb, fbc, fc, b, c);
if (fabs(L + R - A) <= 15 * eps) return L + R + (L + R - A) / 15.0;
return asr(a, ab, b, esp / 2, L, fa, fab, fb) + asr(b, bc, c, esp / 2, R, fb, fbc, fc);
} double asr(double a, double c, double eps) {
double b = (a + c) / 2;
double fa = F(a), fb = F(b), fc = F(c);
return asr(a, b, c, eps, simpson(fa, fb, fc, a, c), fa, fb, fc);
} int main() {
int cas = 0;
scanf("%d", &t);
while (t--) {
scanf("%lf%lf%lf%lf", &d, &h, &b, &l);
double n = ceil(b / d);
l = l / n; w = b / n;
double x = 0, y = h;
while (fabs(x - y) > eps) {
m = (x + y) / 2;
if (2 * asr(0, w / 2, eps) < l) x = m;
else y = m;
}
printf("Case %d:\n%.2lf\n", ++cas, h - x);
if (t) printf("\n");
}
return 0;
}

UVA 1356 - Bridge(自适应辛普森)的更多相关文章

  1. uva 1356 Bridge ( 辛普森积分 )

    uva 1356 Bridge ( 辛普森积分 ) 不要问我辛普森怎么来的,其实我也不知道... #include<stdio.h> #include<math.h> #inc ...

  2. HAUT 1261地狱飞龙 自适应辛普森 数值积分

    1261: 地狱飞龙 时间限制: 1 秒  内存限制: 64 MB 提交: 300  解决: 68 题目描述 最近clover迷上了皇室战争,他抽到了一种地狱飞龙,很开心.假设地域飞龙会对距离为d的敌 ...

  3. 【自适应辛普森积分】hdu1724 Ellipse

    Ellipse Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  4. 洛谷4525 & 4526:【模板】自适应辛普森法——题解

    参考:https://phqghume.github.io/2018/05/19/%E8%87%AA%E9%80%82%E5%BA%94%E8%BE%9B%E6%99%AE%E6%A3%AE%E6%B ...

  5. HDU - 1071 - The area - 高斯约旦消元法 - 自适应辛普森法积分

    http://acm.hdu.edu.cn/showproblem.php?pid=1071 解一个给定三个点的坐标二次函数某区域的积分值. 设出方程之后高斯消元得到二次函数.然后再消元得到直线. 两 ...

  6. HDU 1724:Ellipse(自适应辛普森积分)

    题目链接 题意 给出一个椭圆,问一个[l, r] 区间(蓝色区域)的面积是多少. 思路 自适应辛普森积分 具体一些分析如上. 很方便,套上公式就可以用了. 注意 eps 的取值影响了跑的时间,因为决定 ...

  7. HDU 1724 Ellipse (自适应辛普森积分)

    题目链接:HDU 1724 Problem Description Math is important!! Many students failed in 2+2's mathematical tes ...

  8. HDU - 1724 Ellipse 自适应辛普森模板

    OJ 题解传送门 //Achen #include<algorithm> #include<iostream> #include<cstring> #include ...

  9. 洛谷P4526 【模板】自适应辛普森法2

    P4526 [模板]自适应辛普森法2 洛谷传送门 题目描述 计算积分 保留至小数点后5位.若积分发散,请输出"orz". 输入格式 一行,包含一个实数,为a的值 输出格式 一行,积 ...

随机推荐

  1. Android目录结构

    |ABI-- 应用程序二进制接口(application binary interface,ABI) |-- Makefile |-- bionic               (bionic C库) ...

  2. LeetCode(136) Single Number

    题目 Given an array of integers, every element appears twice except for one. Find that single one. Not ...

  3. Spring,Mybatis,Springmvc框架整合项目(第二部分)

    一.创建数据库表 打开Navicat Premium,点击左上角连接,选择mysql   输入你的数据库用户名和密码信息,可以先点击下测试连接,如果显示连接成功,说明能连接到数据库,然后点击确定.如果 ...

  4. HDU 3516 DP 四边形不等式优化 Tree Construction

    设d(i, j)为连通第i个点到第j个点的树的最小长度,则有状态转移方程: d(i, j) = min{ d(i, k) + d(k + 1, j) + p[k].y - p[j].y + p[k+1 ...

  5. python3--__radd__处理右侧加法

    __radd__处理右侧加法 从严格意义上来讲,前边例子中出现的__add__方法并不支持+运算符右侧使用实例对象.要实现这类表达式,而支持可互换的运算符,可以一并编写__radd__方法.+右侧的对 ...

  6. 2017年 湘潭邀请赛(湖南)or 江苏省赛

    这套题是叉姐出的,好难啊,先扫一遍好像没有会做的题了,仔细一想好像D最容易哎 Super Resolution Accepted : 112   Submit : 178 Time Limit : 1 ...

  7. DuiLib DirectUI 界面库

    国内首个开源 的directui 界面库,开放,共享,惠众,共赢,遵循bsd协议,可以免费用于商业项目,目前支持Windows 32 .Window CE.Mobile等平台. Duilib 是一款强 ...

  8. HDU-3743 Minimum Sum,划分树模板

    Minimum Sum 被这个题坑了一下午,原来只需找一个最中间的数即可,我以为是平均数. 题意:找一个数使得这个数和区间内所有数的差的绝对值最小.输出最小值. 开始用线段树来了一发果断T了,然后各种 ...

  9. bzoj1065【Noi2008】奥运物流

    题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1065 给一棵基环树,每个点i的权值=ci+k*∑son[i],修改至多m个点的父亲使1号点权值 ...

  10. 算法复习——半平面交(bzoj2618凸多边形)

    讲解: 这里套用wuvin神犇的ppt,附上友情链接:http://blog.leanote.com/wuvin 半平面交: 算法流程: 注意事项: 例题: Description 逆时针给出n个凸多 ...