HDU 1724:Ellipse(自适应辛普森积分)
题意
给出一个椭圆,问一个[l, r] 区间(蓝色区域)的面积是多少。
思路
具体一些分析如上。
很方便,套上公式就可以用了。
注意 eps 的取值影响了跑的时间,因为决定了递归的深度。
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> pii;
const int INF = 0x3f3f3f3f;
const int N = 1e5 + 11;
const double eps = 1e-5; // 精度对时间有影响
double a, b, l, r;
// 被积函数,这里是椭圆
double F(double x) {
return sqrt(b * b - b * b * x * x / a / a);
}
// 三点simpson法
double simpson(double a, double b) {
double c = a + (b - a) / 2; // (a + b) / 2
return (F(a) + 4 * F(c) + F(b)) * (b - a) / 6.0;
}
//自适应Simpson公式(递归过程).已知整个区间[a,b]上的三点Simpson值A
double asr(double a, double b, double eps, double A) {
double c = a + (b - a) / 2;
double L = simpson(a, c), R = simpson(c, b);
if(fabs(L + R - A) <= eps * 15) return L + R + (L + R - A) / 15.0;
return asr(a, c, eps / 2, L) + asr(c, b, eps / 2, R);
}
double ASR(double a, double b, double eps) {
return asr(a, b, eps, simpson(a, b));
}
int main() {
int t; scanf("%d", &t);
while(t--) {
scanf("%lf%lf%lf%lf", &a, &b, &l, &r);
printf("%.3f\n", ASR(l, r, eps) * 2);
} return 0;
}
HDU 1724:Ellipse(自适应辛普森积分)的更多相关文章
- HDU 1724 Ellipse (自适应辛普森积分)
题目链接:HDU 1724 Problem Description Math is important!! Many students failed in 2+2's mathematical tes ...
- hdu 1724 Ellipse —— 自适应辛普森积分
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1724 函数都给出来了,可以用辛普森积分: 一开始 eps = 1e-8 TLE了,答案只要三位小数,那么 ...
- HDU - 1724 Ellipse 自适应辛普森模板
OJ 题解传送门 //Achen #include<algorithm> #include<iostream> #include<cstring> #include ...
- HDU 1724 Ellipse 自适应simpson积分
simpson公式是用于积分求解的比较简单的方法(有模板都简单…… 下面是simpson公式(很明显 这个公式的证明我并不会…… (盗图…… 因为一段函数基本不可能很规则 所以我们要用自适应积分的方法 ...
- hdu 1724 : Ellipse 【Simpson积分】
题目链接 题意:给出椭圆方程中的a和b,再给出l.r,求l到r的积分的二倍. 输出时要求精度控制为保留到小数点后3位,如下代码中,eps设为1e-9 1e-8时均TLE,1e-4可以AC,1e-3会W ...
- hdu 1724 Ellipse simpson积分
/* hdu 1724 Ellipse simpson积分 求椭圆的部分面积 simpson积分法 http://zh.wikipedia.org/zh-tw/%E8%BE%9B%E6%99%AE%E ...
- 【自适应辛普森积分】hdu1724 Ellipse
Ellipse Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- HDU 1724 Ellipse 【自适应Simpson积分】
Ellipse Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- HDU 1724 Ellipse
Problem Description Math is important!! Many students failed in 2+2’s mathematical test, so let's AC ...
随机推荐
- 汉顺平html5课程分享:6小时制作经典的坦克大战!
记起自己去年參加的一次面试,在做过Java多年的面试官面前发挥的并不好,但他一听说我会html5,立刻眼睛发亮.无论不顾的想要和我签约.. .所以.如今为工作犯愁的朋友们,学好html5,绝对会为你找 ...
- 两个同名controller导致调用崩溃
之前遇到一个很诡异的bug,大概情况如下: 生成成功,运行正常,调试正常 但是调用目标controller的目标方法,运行自动中断,调试自动中断 没有任何明确的错误提示,包括调试都没有弹窗报错 调用其 ...
- Bootstrap 分页翻页
@{ Layout = null;}<!DOCTYPE html><html><head> <meta name="viewport&q ...
- SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction 解决方法
SHOW FULL PROCESSLIST; KILL 263071
- 在WPF中减少逻辑与UI元素的耦合
原文:在WPF中减少逻辑与UI元素的耦合 在WPF中减少逻辑与UI元素的耦合 周银辉 1, 避免在逻辑中引用界面元素,别把后台数据强加给UI 一个糟糕的案例 比如说主界 ...
- generate eml file
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...
- 2018-4-25-- 2.在sublime3里安装git插件并连接GitHub
1.配置全局参数 Git的主要配置包括用户名.邮箱的设置.以及生成SSH密钥公钥等. 首先运行一下的命令设置git提交代码时自己的用户信息. 2.在sublime3里使用时需要配置push.defau ...
- codewars杂记: 寻找缺失的数
题目描述: 给出一个整数列表,找出该列表无法通过各种组合求和得到的最小的整数. 示例: solve([1,2,8,7]) = 4, because we can get 1, 2, 1+2=3. Bu ...
- iOS学习总结之ARC和非ARC的单例模式实现
iOS单例模式的实现 首先我们要明白下面三个问题: 什么是单例模式 单例模式的优点 如何实现单例模式 1.什么是单例模式 单例模式(Singleton):单例模式确保对于一个给定的类只有一个实例存在, ...
- php 如何利用 soap调用.Net的WebService asmx文件
原文:php 如何利用 soap调用.Net的WebService asmx文件 最近,帮一个同行测试用.net写的WebService接口,C#调用通过,现在需要测试一下php版本对它的调用,经过各 ...