地狱飞龙 [simpson][积分]
来源:互联网 发布:淘宝助理违规验证通过 编辑:程序博客网 时间:2024/04/30 14:14
题目描述
最近clover迷上了皇室战争,他抽到了一种地狱飞龙,很开心。假设地域飞龙会对距离为d的敌人每秒造成k/d2伤害。假设地域飞龙位于坐标轴原点,以每秒v1的速度向y轴正方向移动,敌人在(x,0)的位置,以每秒v2的速度向x轴负方向移动。问,敌人至少有多少血量永远才不会被地狱飞龙喷死。(伤害是连续造成的,不是一秒一秒间断的)
输入
第一行为数据组数T(1<=T<=1000)
每组数据一行,包含4个实数,分别为v1,v2,x,k(1≤v1,v2,x,k≤10)。
输出
每组数据输出一行,为敌人最小血量,结果保留2为有效数字.
样例输入
1
1 1 1 1
样例输出
2.36
link http://218.28.220.249:50015/JudgeOnline/problem.php?id=1261
题解
以下是对 Simpson’s rule 的改进算法(改用了 Simpson’s 3/8 rule
#include<cstdio>#include<cstring>#include<cmath>#include<queue>#include<stack>#include<vector>#include<algorithm>using namespace std;double v1,v2,x0,k;const double eps=1e-8;inline double f(double x){ return k/(v1*x*v1*x+(x0-v2*x)*(x0-v2*x));}inline double getAppr(double a,double b){ return (b-a)*(f(a)+3*f((2*a+b)/3)+3*f((a+2*b)/3)+f(b))/8.0;}double simpson(double l,double r){ double sum=getAppr(l,r); double mid=(l+r)/2; double suml=getAppr(l,mid); double sumr=getAppr(mid,r); return fabs(sum-suml-sumr)<eps?sum:simpson(l,mid)+simpson(mid,r);}int main(){ int T; scanf("%d",&T); while(T--){ scanf("%lf%lf%lf%lf",&v1,&v2,&x0,&k); printf("%.2lf\n",simpson(0,1e9)); } return 0;}
附上该题的最精确的解法(把原函数积出来 (我师傅数学强啊啊
更精确的做法:我们求的是[0,oo]的定积分,那么就对上限取极限再和下限做差就可以的得到答案是
#include<cstdio>#include<cmath>using namespace std;double v1,v2,x0,k;inline double f(){ return k*(acos((double)-1.0)/2.0-atan(-v2/v1))/fabs(v1*x0);}int main(){ int T; scanf("%d",&T); while(T--){ scanf("%lf%lf%lf%lf",&v1,&v2,&x0,&k); printf("%0.2lf\n",f()); } return 0;}
0 0
- 地狱飞龙 [simpson][积分]
- 地狱飞龙 【simpson 求积分】
- 地狱飞龙(定积分 杭电排位赛-2)
- 【辛普森积分*模板】2017河工大校赛 B地狱飞龙
- HAUT 1261 地狱飞龙
- HAUT 1261 地狱飞龙(数值积分)(河南工业大学2017校赛)
- HAUTOJ 1261: 地狱飞龙 自适应辛普森算法
- hdu1724(定积分&&Simpson积分)
- Simpson 积分算法
- 关于Simpson积分
- 自适应simpson积分
- HDU 1724 (simpson积分)
- simpson积分公式
- acdream1234(Simpson积分)
- 自适应Simpson积分
- 自适应simpson 积分
- 河南工业大学“玲珑杯”地狱飞龙(高数上微积分~~)
- 学习笔记: 自适应Simpson积分
- 五.SpringMVC+MyBatis搭建安全与性能
- 116. Populating Next Right Pointers in Each Node
- IntelliJ IDEA 注册
- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-o2julgbe/xgboost/
- 《程序员修炼之道》笔记(一)
- 地狱飞龙 [simpson][积分]
- Grid绘制(gdi+)
- 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数? 都是多少?
- memcached-1-memcached的基础
- 《程序员修炼之道》笔记(二)
- Web自适应
- Fluke45Viewer数据校准工具
- 《程序员修炼之道》笔记(三)
- 基础搜索