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;
}

最新文章

  1. 通过配置Mysql参数提高写入速度
  2. dos 命令帮助文档chm
  3. php组成数组
  4. BZOJ1829 : [Usaco2010 Mar]starc星际争霸
  5. 1. Nginx
  6. fork之后发生了什么(基于3.16-rc4)
  7. response对象详解
  8. redis在Java web项目的简单应用(转载)
  9. SQL Server 行版本控制
  10. hadoop中,combine、partition、shuffle作用分别是什么?
  11. 20164322 韩玉婷-----Exp5 MSF基础应
  12. gc的real时间比user时间长
  13. eclipse配置Servlet连接Mysql要注意的几个地方
  14. (转)程序员级别鉴定书(.NET面试问答集锦)
  15. Impala SQL 使用小记
  16. @1-4使用Xpath解析豆瓣短评
  17. Partition2:对现有表分区
  18. 阿里云VPC默认网关问题
  19. crm操作产品实体
  20. Decision_function:scores,predict以及其他

热门文章

  1. return_url notify_url
  2. 用Go编写的本地文件服务器
  3. Python常用操作符
  4. Course Machine Learning Note
  5. 九度oj 题目1102:最小面积子矩阵
  6. 03-for循环in遍历
  7. BZOJ 1260: [CQOI2007]涂色paint【区间DP】
  8. SHOWMODALDIALOG表单提交时禁止打开新窗口
  9. C\C++ 中的 strcat() 函数 —— 字符串的插入、拼接
  10. 服务器内部转发forward,action到action