商业网站有什么作用,网站邮箱建设,做漆包线的招聘网站,石家庄网站备案题目大意 你的任务是修建一座大桥。桥上等距地摆放着若干个塔#xff0c;塔高为H#xff0c;宽度忽略不计。相邻两座塔之间的距离不能超过D。塔之间的绳索形成全等的对称抛物线。桥长度为B#xff0c;绳索总长为L#xff0c;如下图所示求建最少的塔时绳索的最下端离地的高度…题目大意 你的任务是修建一座大桥。桥上等距地摆放着若干个塔塔高为H宽度忽略不计。相邻两座塔之间的距离不能超过D。塔之间的绳索形成全等的对称抛物线。桥长度为B绳索总长为L如下图所示求建最少的塔时绳索的最下端离地的高度y。 【输入格式】 输入第一行为测试数据组数T。每组数据包含4个整数D,H,B,L(BL)。 【输出格式】 对于每组数据输出绳索底部离地高度保留两位小数。 间隔数为n[(BD-1)/D],所以间隔和每个间隔的绳子长分别为wB/nLL/n 根据微积分一个二次函数的弧长len∫√(1[f(x)]2) 不懂看https://wenku.baidu.com/view/7c3f0a8a02d276a200292e12.html 因为要确定ykx2的k找到可以使lenL的klen的计算用辛普森 1 #includeiostream2 #includecstdio3 #includecstring4 #includealgorithm5 #includecmath6 using namespace std;7 double k,D,H,B,L,eps1e-5,ans,Eps1e-5;8 double F(double X)9 {
10 return sqrt(14.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((lr)/2.0))/6.0;
15 }
16 double asr(double l,double r,double eps,double A)
17 {
18 double mid(lr)/2.0;
19 double LSsimpson(l,mid),RSsimpson(mid,r);
20 if (fabs(LSRS-A)15.0*eps) return LSRS(LSRS-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 cinT;
27 while (T--)
28 {
29 scanf(%lf%lf%lf%lf,D,H,B,L);
30 int n(BD-1)/D;
31 wB/(double)n;
32 LL/(double)n;
33 double l0,rH;
34 while (lEpsr)
35 {
36 double mid(lr)/2.0;
37 k4.0*mid/(w*w);
38 if (2.0*asr(0,w/2.0,eps,simpson(0,w/2.0))-LEps) ansmid,lmid;
39 else rmid;
40 }
41 cnt;
42 if (cnt1) 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