LA3485 Bridge[(辛普森自适应)微积分]
做此题完全是为了练积分。
【普通求导版】
Select Code
#include<cstdio>
#include<cmath>
using namespace std;
typedef double real;
const real eps=1e-5;
int cas,Cas,D,H,B,L;
real F(real a,real x){
real a2=a*a;
real x2=x*x;
return (x*sqrt(a2+x2)+a2*log(fabs(x+sqrt(a2+x2))))/2.0;
}
real calc(real w,real h){
real a=4.0*h/(w*w);
real A=1.0/(2.0*a);
return (F(A,w/2.0)-F(A,0))*4.0*a;
}
int main(){
for(scanf("%d",&cas);cas--;){
scanf("%d%d%d%d",&D,&H,&B,&L);
int n=(B+D-1)/D;
real D1=(real)B/n;
real L1=(real)L/n;
real l=0.0,r=H,mid;
while(l+eps<r){
mid=(l+r)/2.0;
if(calc(D1,mid)<L1) l=mid;else r=mid;
}
printf("Case %d:\n%.2lf\n",++Cas,H-l);
if(cas) putchar('\n');
}
return 0;
}
【辛普森自适应版】
Select Code
#include<cstdio>
#include<cmath>
using namespace std;
typedef double real;
const real eps=1e-5;
int cas,Cas,D,H,B,L;
real a;
real F(real x){
real a2=a*a;
real x2=x*x;
return sqrt(1.0+4.0*a2*x2);
}
real simpson(real a,real b){
real c=(a+b)/2.0;
return (F(a)+4.0*F(c)+F(b))*(b-a)/6.0;
}
real asr(real a,real b,real eps,real A){
real c=(a+b)/2.0;
real L=simpson(a,c),R=simpson(c,b);
if(fabs(L+R-A)<=15*eps) return L+R+(L+R-A)/15;
return asr(a,c,eps/2,L)+asr(c,b,eps/2,R);
}
real asr(real a,real b,real eps){
return asr(a,b,eps,simpson(a,b));
}
real calc(real w,real h){
a=4.0*h/(w*w);
return asr(0,w/2.0,eps)*2.0;
}
int main(){
for(scanf("%d",&cas);cas--;){
scanf("%d%d%d%d",&D,&H,&B,&L);
int n=(B+D-1)/D;
real D1=(real)B/n;
real L1=(real)L/n;
real l=0.0,r=H,mid;
while(l+eps<r){
mid=(l+r)/2.0;
if(calc(D1,mid)<L1) l=mid;else r=mid;
}
printf("Case %d:\n%.2lf\n",++Cas,H-l);
if(cas) putchar('\n');
}
return 0;
}
LA3485 Bridge[(辛普森自适应)微积分]的更多相关文章
- uva 1356 Bridge ( 辛普森积分 )
uva 1356 Bridge ( 辛普森积分 ) 不要问我辛普森怎么来的,其实我也不知道... #include<stdio.h> #include<math.h> #inc ...
- LA3485 Bridge
题意 PDF 分析 以<训练指南>上的分析为准. 二分法时间复杂度\(O(\log v)\) 代码 #include<bits/stdc++.h> #define rg reg ...
- UVA 1356 - Bridge(自适应辛普森)
UVA 1356 - Bridge option=com_onlinejudge&Itemid=8&page=show_problem&category=493&pro ...
- 洛谷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 ...
- LA 3485 (积分 辛普森自适应法) Bridge
桥的间隔数为n = ceil(B/D),每段绳子的长度为L / n,相邻两塔之间的距离为 B / n 主要问题还是在于已知抛物线的开口宽度w 和 抛物线的高度h 求抛物线的长度 弧长积分公式为: 设抛 ...
- HAUT 1261地狱飞龙 自适应辛普森 数值积分
1261: 地狱飞龙 时间限制: 1 秒 内存限制: 64 MB 提交: 300 解决: 68 题目描述 最近clover迷上了皇室战争,他抽到了一种地狱飞龙,很开心.假设地域飞龙会对距离为d的敌 ...
- 【自适应辛普森积分】hdu1724 Ellipse
Ellipse Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- 【LA3485】 Bridge
前言 哈哈哈,垃圾微积分哈哈哈 前置知识:自适应Simpson法与微积分初步,学会编程 Solution 考虑一下我们有的是什么: 一段桥梁的横向距离,悬线的长度,以及高度. 我们发现如果我们重新设一 ...
- 洛谷P4525 【模板】自适应辛普森法1(simpson积分)
题目描述 计算积分 结果保留至小数点后6位. 数据保证计算过程中分母不为0且积分能够收敛. 输入输出格式 输入格式: 一行,包含6个实数a,b,c,d,L,R 输出格式: 一行,积分值,保留至小数点后 ...
随机推荐
- ASP.NET Web API 控制器执行过程
http://www.cnblogs.com/jin-yuan/p/3952605.html
- unity, 由Matrix4x4提取Quaternion和Vector3 及 由Quaternion,Vector3构造Matrix4x4
一,由Matrix4x4提取Quaternion和Vector3 Quaternion getRotationFromMatrix(Matrix4x4 m) { return Quat ...
- INFORMIX的dbexport和dbimport使用示例说明
INFORMIX-IDS数据库进行迁移中,我们在进行数据级别的迁移时,采用dbexport,dbimport来完成.dbexport导出数据库中所有对象的模式脚本和表数据文件,该模式脚本中包含有表等的 ...
- [CentOS] CentOS for vsftpd with MySQL Virtual user
從ubuntu 12.04的安裝手法拿到CentOS來真的有些很大的不同 絕大部分的語法.概念都是差不多的,只是指令上有些差別,跟ubuntu 有不一樣的地方特別拿出來另外說明 要讓vsftpd與my ...
- Object-C中的字符串对象1-不可变字符串
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...
- REST 和 SOAP、RPC 有何区别?
第一个问题:什么是RESTful? REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的.有兴趣可以看看这里论文`,谁是Fielding?点击前面名字了解. 那RE ...
- 安卓-启动下一个Activity
Intent intent = new Intent(NotebookActivity.this, MessageActivity.class); startActivity(intent); 通过意 ...
- Atitit. 状态模式(State)attilax 总结 跟个策 略模式的区别
Atitit. 状态模式(State)attilax 总结 跟个策 略模式的区别 1. 状态模式(State)概览 1 2. 状态的维护和转换:① 在Context 中.② 在状态的处理类中.2 3. ...
- Delphi 全局画点TCanvas.Pixels[X,Y]
procedure TForm1.btnChangePixelClick(Sender: TObject); var baseX : integer ; baseY : integer ; i,j : ...
- svn move (mv,rename,ren)
svn 重命名文件: [root@NGINX-APACHE-SVN pro]# svn move 20160624新建数据库表.txt 201.txt A 201.txt D 20160624新建数据 ...