桥的间隔数为n = ceil(B/D),每段绳子的长度为L / n,相邻两塔之间的距离为 B / n

主要问题还是在于已知抛物线的开口宽度w 和 抛物线的高度h 求抛物线的长度

弧长积分公式为:

设抛物线方程为f(x) = ax2,则这段抛物线弧长为

查积分表或者自己分部积分算一下: 

二分抛物线高度x,使得每段抛物线长度为L / n,所求答案为H - x

 #include <cstdio>
#include <cmath> inline double F(double a, double x)
{//sqrt(a^2+x^2)的原函数
double a2 = a*a, x2 = x*x;
double s = sqrt(a2+x2);
return (x*s + a2*log(x+s))/;
} double length(double w, double h)
{//宽为w,高为h的抛物线的长度
double a = *h/w/w;
double b = 0.5/a;
return *a*(F(b, w/) - F(b, ));
} int main()
{
//freopen("in.txt", "r", stdin); int T;
scanf("%d", &T);
for(int kase = ; kase <= T; kase++)
{
int D, H, B, L;
scanf("%d%d%d%d", &D, &H, &B, &L);
int n = (B-)/D + ; //间隔数
double d = (double)B / n; //间隔
double l = (double)L / n; //每段绳长
double Left = , Right = H;
while(Right - Left > 1e-)
{//二分求抛物线高度
double mid = (Right + Left) / ;
if(length(d, mid) > l) Right = mid;
else Left = mid;
}
if(kase > ) puts("");
printf("Case %d:\n%.2f\n", kase, H-Left);
} return ;
}

代码君

后面又介绍了一种Simpson自适应算法,可以求任意连续函数的积分。

维基百科辛普森法则

虽然不明白这个式子是怎么来的,但并不能阻止我们学习自适应辛普森算法。

书上还说可以将区间端点和中点的函数值作为参数传入以减少重复计算,求教。。

 #include <cstdio>
#include <cmath> double a; inline double F(double x)
{ return sqrt(+*a*a*x*x); } double simpson(double a, double b)
{
double c = (a+b)/;
return (F(a)+*F(c)+F(b))*(b-a)/;
} double asr(double a, double b, double eps, double A)
{
double c = (a+b)/;
double L = simpson(a, c), R = simpson(c, b);
if(fabs(L+R-A) <= *eps) return L + R + (L+R-A)/15.0;
return asr(a, c, eps/, L) + asr(c, b, eps/, R);
} double asr(double a, double b, double eps)
{
return asr(a, b, eps, simpson(a, b));
} double length(double w, double h)
{
a = 4.0*h/w/w;
return asr(, w/, 1e-) * ;
} int main()
{
//freopen("in.txt", "r", stdin); int T;
scanf("%d", &T);
for(int kase = ; kase <= T; kase++)
{
int D, H, B, L;
scanf("%d%d%d%d", &D, &H, &B, &L);
int n = (B-)/D + ;
double d = (double)B / n;
double l = (double)L / n;
double x = , y = H;
while(y - x > 1e-)
{
double m = (x + y) / ;
if(length(d, m) > l) y = m;
else x = m;
}
if(kase > ) puts("");
printf("Case %d:\n%.2f\n", kase, H - x);
} return ;
}

代码君

LA 3485 (积分 辛普森自适应法) Bridge的更多相关文章

  1. LA 3485 Bridge

    自适应辛普森公式模板. #include<algorithm> #include<iostream> #include<cstring> #include<c ...

  2. UVA 1356 - Bridge(自适应辛普森)

    UVA 1356 - Bridge option=com_onlinejudge&Itemid=8&page=show_problem&category=493&pro ...

  3. $Simpson$积分入门

    \(\rm{0x01}\) 前言 首先阐明一点,自适应辛普森算法(\(\rm{Adaptive ~Simpson's~ rule}\) )是一类近似算法(\(\rm{Approximation ~al ...

  4. .Uva&LA部分题目代码

    1.LA 5694 Adding New Machine 关键词:数据结构,线段树,扫描线(FIFO) #include <algorithm> #include <cstdio&g ...

  5. pytorch基础学习(二)

    在神经网络训练时,还涉及到一些tricks,如网络权重的初始化方法,优化器种类(权重更新),图片预处理等,继续填坑. 1. 神经网络初始化(Network Initialization ) 1.1 初 ...

  6. TCP(一)

    传输控制协议TCP特点:1,面向连接的运输层协议        2,每一条TCP只能有两个端点.点对点        3,TCP是可靠的,无差错,不重复,顺序到达.        4,全双工,允许通信 ...

  7. 计算几何 val.3

    目录 计算几何 val.3 自适应辛普森法 定积分 引入 辛普森公式 处理精度 代码实现 模板 时间复杂度 练习 闵可夫斯基和 Pick定理 结论 例题 后记 计算几何 val.3 自适应辛普森法 可 ...

  8. zhengrui集训笔记2

    Day_6 计算几何 点积\Large 点积点积 叉积\Large 叉积叉积 极角\Large 极角极角 < π\piπ :叉积判断 else :atan2 旋转\Large 旋转旋转 左乘第一 ...

  9. 关于redis内存分析,内存优化

    对于redis来说,什么是最重要的? 毋庸置疑,是内存. 一.reids 内存分析 redis内存使用情况:info memory 示例: 可以看到,当前节点内存碎片率为226893824/20952 ...

随机推荐

  1. 自己的一些 Demo,源码链接

    1.指纹解锁(GitHub). 2.JS 与 OC 交互(GitHub). 3.模仿 HTML 下拉菜单(GitHub). 4.OC开发常用类目(GitHub).

  2. lamada 表达式之神奇的groupby

    少说话多干活 先定义一个测试用的实体,接下来会用字段Name进行分组的 public class TestToRun { public string Name { get; set; }//名称 pu ...

  3. mysql federated engine

    mysql)) -> engine=federated -> connection='mysql://root@localhost:3306/t1/t';

  4. ASP.NET MVC 4 插件化架构简单实现-实例篇

    先回顾一下上篇决定的做法: 1.定义程序集搜索目录(临时目录). 2.将要使用的各种程序集(插件)复制到该目录. 3.加载临时目录中的程序集. 4.定义模板引擎的搜索路径. 5.在模板引擎的查找页面方 ...

  5. 各种matrix

    http://www.gamedev.net/topic/602722-worldviewproj/

  6. httpClient 入门实例

    import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.Unsu ...

  7. 在 tornado 中异步无阻塞的执行耗时任务

    在 tornado 中异步无阻塞的执行耗时任务 在 linux 上 tornado 是基于 epoll 的事件驱动框架,在网络事件上是无阻塞的.但是因为 tornado 自身是单线程的,所以如果我们在 ...

  8. Javascript中的Cookie操作

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  9. WAF安恒

    http://wenku.baidu.com/view/c242927f581b6bd97e19ea1a.html?from=search

  10. 使用 Storyboard Segue 实作 UIViewController 的切换

    http://blog.csdn.net/mazhen1986/article/details/7791430 Storyboard 是在 iOS 5 SDK 中才出现的新名词,它其实就是原本的 Xi ...