Simpson积分(BZOJ2178)】的更多相关文章

lrj的代码常数太大T了QAQ,改了一下. #include <cstdio> #include <cmath> #include <algorithm> using namespace std; typedef double db; ; ,rm=-,v[N],q[N],x[N],y[N],r[N]; pair<db,db> b[N]; db F(db a) { ; db re=,ls=-; ;i<=t;i++) if(fabs(a-x[q[i]])&…
题目链接:BZOJ - 2178 题目分析 用Simpson积分,将圆按照 x 坐标分成连续的一些段,分别用 Simpson 求. 注意:1)Eps要设成 1e-13  2)要去掉被其他圆包含的圆. 代码 #include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> us…
题目链接: BZOJ - 1502 题目分析 这是我做的第一道 Simpson 积分的题目.Simpson 积分是一种用 (fl + 4*fmid + fr) / 6 * (r - l) 来拟合 fl...fr 的方法.自适应 Simpson 的自适应指的是,如果分成左右两端分别 Simpson 的和与对整段 Simpson 的差值不超过一个 Eps,那么就接受这个值,否则递归下去求两段的 Simpson 值. 代码 #include <iostream> #include <cstdl…
/* hdu 1724 Ellipse simpson积分 求椭圆的部分面积 simpson积分法 http://zh.wikipedia.org/zh-tw/%E8%BE%9B%E6%99%AE%E6%A3%AE%E7%A7%AF%E5%88%86%E6%B3%95 */ #include<stdio.h> #include<math.h> const double eps=1e-8; inline double jue(double a) { return a>0?a:-…
自适应Simpson积分 作用 如标题所示,这玩意就是当你不会微积分的时候来求积分的. 总所周知,积分的定义就是函数的某一段与坐标轴之间的面积. 那么,自适应Simpson积分就是一种可以再某些精度下计算出较为平滑的函数的积分的比较简单优美的算法. (PS:这玩意的时间复杂度?大概是O(玄学)吧) 引子 积分的定义是面积,那么我们可以通过最基本的切割法来求出一定精度下面积. (ps:就是0.0000--01那样扫过去,把这个当做宽,把函数值当做高,然后乘起来当做面积) 然而这个耗费的时间太多,而…
[BZOJ1502][NOI2005]月下柠檬树 Description 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树旁,独自思索着人生的哲理.李哲是一个喜爱思考的孩子,当他看到在月光的照射下柠檬树投在地面上的影子是如此的清晰,马上想到了一个问题:树影的面积是多大呢?李哲知道,直接测量面积是很难的,他想用几何的方法算,因为他对这棵柠檬树的形状了解得非常清楚,而且想好了简化的方法.李哲将整棵柠檬树分成了n 层,由下向…
题目描述 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树旁,独自思索着人生的哲理.李哲是一个喜爱思考的孩子,当他看到在月光的照射下柠檬树投在地面上的影子是如此的清晰,马上想到了一个问题:树影的面积是多大呢?李哲知道,直接测量面积是很难的,他想用几何的方法算,因为他对这棵柠檬树的形状了解得非常清楚,而且想好了简化的方法.李哲将整棵柠檬树分成了n 层,由下向上依次将层编号为1,2,…,n.从第1到n-1 层,每层都是一个…
[题目分析] 史上最良心样例,史上最难调样例. Simpson积分硬上. 听说用long double 精度1e-10才能过. 但是double+1e-6居然过了. [代码] #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <map> #include <set> #include <queue> #incl…
[题目分析] 圆的面积并. 直接Simpson积分,(但是有计算几何的解法,留着flag). simpson积分,如果圆出现了不连续的情况,是很容易出事情的.(脑补一下) 但是没有什么办法,本来就是一种取巧的做法,还能指望这暴力积分做什么. [代码] #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <map> #include &l…
[题目分析] 一看题目,直接把椭圆积分起来就可以了嘛. 然后发现椭圆比较难积分,还是算了吧. 用Simpson积分硬上. 大概就是用二次函数去拟合面积. [代码] #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <map> #include <set> #include <queue> #include &l…
Ellipse Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1977    Accepted Submission(s): 832 Problem Description Math is important!! Many students failed in 2+2’s mathematical test, so let's AC t…
分析:根据这个题学了一发自适应simpson积分(原来积分还可以这么求),然后就是套模板了 学习自适应simpson积分:http://blog.csdn.net/greatwall1995/article/details/8639135 #include <cstdio> #include <cstring> #include <queue> #include <cmath> #include <algorithm> using namespa…
思路: 我发现能用Simpson积分水的题  好像都是裸题诶233333 //By SiriusRen #include <bits/stdc++.h> using namespace std; #define pr pair<double,double> ; int n,ban[N];double inf=1e100,l=inf,r=-inf;pr p[N]; struct Point{int x,y;}; double dis(Point a,Point b){ return…
思路: Simpson积分直接上  限制一下递归深度+精度就好了 (难以理解为什么这么多人写扫描线) //By SiriusRen #include <bits/stdc++.h> using namespace std; #define pr pair<double,double> ; int n; ,eps=1e-,l=inf,r=-inf; pr p[N]; struct Triangle{double x1,y1,x2,y2,x3,y3;}tr[N]; double jd(…
板子题.可以转一下坐标防止被卡.精度和常数实在难以平衡. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define double long double #define N 101…
1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1017  Solved: 562[Submit][Status][Discuss] Description Input 文件的第1行包含一个整数n和一个实数alpha,表示柠檬树的层数和月亮的光线与地面夹角(单位为弧度).第2行包含n+1个实数h0,h1,h2,…,hn,表示树离地的高度和每层的高度.第3行包含n个实数r1,r2,…,rn,表示柠檬树每层下底面的…
simpson公式是用于积分求解的比较简单的方法(有模板都简单…… 下面是simpson公式(很明显 这个公式的证明我并不会…… (盗图…… 因为一段函数基本不可能很规则 所以我们要用自适应积分的方法 找了一道很水的积分题试试模板…… 关于simpson要*15 网上有很具体的证明过程…… (细节移步至:http://www2.math.umd.edu/~mariakc/teaching/adaptive.pdf #include<cstdio> #include<iostream>…
\(\rm{0x01}\) 前言 首先阐明一点,自适应辛普森算法(\(\rm{Adaptive ~Simpson's~ rule}\) )是一类近似算法(\(\rm{Approximation ~algorithm}\)),主要用于求较难反导的函数的积分.大概在信息计算的时候中很常用? 其思想是利用二次函数来不断拟合(\(\rm{Overfitting}\))所求曲线,而所谓的\(Adapative\)(自适应)则是用于优化时间复杂度的方法. 嗝-总之-比较简单? 表示看了两篇外国学者的论文,感…
BZOJ 洛谷 https://www.luogu.org/blog/ShadowassIIXVIIIIV/solution-p3779# 正态分布 正态分布是随机变量\(X\)的一种概率分布形式.它用一个期望\(\mu\)和方差\(\sigma^2\)就可以描述,记为\(N(\mu,\sigma^2)\). 若随机变量\(X\)服从一个数学期望为\(\mu\).方差为\(\sigma^2\)的正态分布,记作\(X\sim N(\mu,\sigma^2)\),读作\(X\)服从\(N(\mu,\…
题目链接 Simpson积分公式:\[\int_a^bf(x)dx\approx\frac{b-a}{6}\left[f(a)+f(b)+4f(\frac{a+b}{2})\right]\] 推导过程大概就是,令\(f(x)=Ax^2+Bx+C\),代进去求一下积分就好了? 自适应是指根据区间大小控制精度.满足精度要求时直接返回. 那个,有人知道asr是指什么吗..(什么的缩写?) //0ms 1.7MB #include <cmath> #include <cstdio> #in…
题目链接 题意:给出椭圆方程中的a和b,再给出l.r,求l到r的积分的二倍. 输出时要求精度控制为保留到小数点后3位,如下代码中,eps设为1e-9 1e-8时均TLE,1e-4可以AC,1e-3会WA 代码: #include<bits/stdc++.h> using namespace std; typedef long long LL; ; int n; double a,b,l,r; double F(double x) { -x*x/a/a); } double simpson(do…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1502 题意:给出如下一棵分层的树,给出每层的高度和每个面的半径.光线是平行的,与地面夹角alpha.求树在地面上投影的面积. 思路:样例的投影如下,所有面积就是这些的面积交,包括一些圆.等腰梯形.首先要计算出等腰梯形,也就是两个圆公切线与圆的交点.之后就是simpson公式: simpson(L,R)表示图形在x=L,x=R与x轴围成图形的面积.若simpson(L,mid)+simp…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1502 题意:给出如下一棵分层的树,给出每层的高度和每个面的半径.光线是平行的,与地面夹角alpha.求树在地面上投影的面积. 首先,做这题需要知道一点:一个圆从任意一个角度投影都永远是一个圆. 我们可以画出一个简图如下: 如图,这棵树倒影之后,有图中两个圆心p1,p2,他们的横坐标即为这颗树上他们原先的高度乘以cotΘ,而他们的半价却不会变化,因为月光是平行光,所以在圆面与地面平行时,…
特别提醒:eps至少要5e-6 首先我们来研究下平行光对投影的影响. 一个二维的图形,若它与光屏平行,那么不论平行光与光屏的夹角为多少,所得图形与原图形全等的(只是位置会有影响) 通过这么一分析,我们将原图形无限切片,并且投影到光屏上去,会发现阴影可以用很多很多个圆的面积并来表示. 这样做显然是T的,我们进行冷静分析(雾).通过分析得出,阴影为n个圆,n个直角梯形,和一个三角形的并.(如图所示) 在处理的时候,我们可以把三角形当梯形处理. 然后就是愉快地Simpson啦~~~~ #include…
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2677    Accepted Submission(s): 1208 Problem Description Math is important!! Many students failed in 2+2’s mathematical test, so let's AC this pro…
题目描述 计算积分 结果保留至小数点后6位. 数据保证计算过程中分母不为0且积分能够收敛. 输入输出格式 输入格式: 一行,包含6个实数a,b,c,d,L,R 输出格式: 一行,积分值,保留至小数点后6位. 输入输出样例 输入样例#1: 复制 1 2 3 4 5 6 输出样例#1: 复制 2.732937 说明 a,b,c,d∈[-10,10] -100≤L<R≤100 且 R-L≥1 辛普森积分是用$y = Ax^2 +Bx +c$去拟合给定的函数 $$\int_a^bf(x)dx\appro…
题目描述 计算积分 保留至小数点后5位.若积分发散,请输出"orz". 输入输出格式 输入格式: 一行,包含一个实数,为a的值 输出格式: 一行,积分值或orz 输入输出样例 输入样例#1: 复制 2.33 输出样例#1: 复制 1.51068 说明 a<=50 请注意时空限制. 观察到函数具有极强的收敛性 然后估算一下上界,直接上辛普森积分 // luogu-judger-enable-o2 #include<cstdio> #include<cmath>…
投影到地面之后,会发现圆形在平行光下面积和形状是不会变的,也就是所要求的图形是若干个圆和把相邻两个圆连起来的公切线所组成的. 公切线和圆间距瞎求一下就行,注意要去掉被完全覆盖的圆 然后simpson即可 eps大概1e-6 #include<iostream> #include<cstdio> #include<cmath> using namespace std; const int N=1005; const double eps=1e-6,inf=1e15; do…
直接套simpson,f可以直接把圆排序后扫一遍所有圆,这样维护一个区间就可以避免空段. 然而一定要去掉被其他圆完全覆盖的圆,否则会TLE #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; const double eps=1e-13; const int N=1005; int n,m; double mn=1e13,mx…
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; int n; ; struct node { double x,y,r; }b[],a[];int cnt; bool cmp1(node aa,node bb) { retu…