UVA 12905 Volume of Revolution (几何,微积分)
题意:分段用椎台面积近似计算体积,然后计算出近似值和真实值的相对误差
微积分加数学。
平头椎台的体积计算公式:
V = 1/3*h*(S1+S2*sqrt(S1*S2)
一个更快的计算多项式值的方法: for(int i = 15; i >= 0; i--) ans = ans*x+p[i],比直接pow快了一倍
#include<cstdio>
#include<cmath>
#include<cstring>
const double pi = atan()*; int poly[],Q[],n; inline double calR(double x)
{
double ans = poly[];
for(int i = ; i <= n; i++ ){
ans += poly[i]*pow(x,i);
}
return ans;
} inline double calint(int x){
double ans = ;
for(int i = ,sz = n<<; i <= sz; i++ ){
ans += Q[i]*pow(x,i+)/(i+);
}
return ans;
} inline double calV(int a,int b){
memset(Q,,sizeof(Q));
for(int i = ; i <= n; i++){
for(int j = ; j <= n; j++)
Q[i+j] += poly[i]*poly[j];
} return (calint(b)-calint(a))*pi;
} inline double calS(double R,double theta,int slices){
return R*sin(theta)/*R*slices;
} int main()
{ int T;
scanf("%d",&T);
int cas = ;
while(T--){
memset(poly,,sizeof(poly));
scanf("%d",&n);
for(int i = n; i >= ;i--)
scanf("%d",poly+i);
int a,b;
scanf("%d%d",&a,&b);
int slices,stacks;
scanf("%d%d",&slices,&stacks);
double dx = (b-a)*1.0/stacks, dtheta = *pi/slices;
double R1 = calR(a),S1 = calS(R1,dtheta,slices); double x = a+dx; double ape = ;
for(int i = ; i < stacks; i++){
double R2 = calR(x);
double S2 = calS(R2,dtheta,slices);
double dS = dx/*(S1+S2+sqrt(S1*S2));
ape += dS;
x += dx;
R1 = R2; S1 =S2;
}
double vol = calV(a,b); printf("Case %d: %.4lf\n",++cas,fabs(ape-vol)/vol*);
}
return ;
}
UVA 12905 Volume of Revolution (几何,微积分)的更多相关文章
- 递推DP UVA 1291 Dance Dance Revolution
题目传送门 题意:给一串跳舞的动作,至少一只脚落到指定的位置,不同的走法有不同的体力消耗,问最小体力消费多少分析:dp[i][j][k] 表示前i个动作,当前状态(j, k)的最小消费,状态转移方程: ...
- UVA 11646 - Athletics Track || UVA 11817 - Tunnelling the Earth 几何
题目大意: 两题几何水题. 1.UVA 11646 - Athletics Track 如图,体育场的跑道一圈400米,其中弯道是两段半径相同的圆弧,已知矩形的长宽比例为a:b,求长和宽的具体数值. ...
- UVA 11178 Morley's Theorem(几何)
Morley's Theorem [题目链接]Morley's Theorem [题目类型]几何 &题解: 蓝书P259 简单的几何模拟,但要熟练的应用模板,还有注意模板的适用范围和传参不要传 ...
- UVA 11800 - Determine the Shape 几何
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- UVA 11437 - Triangle Fun 向量几何
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- UVA 1291 Dance Dance Revolution(DP)
意甲冠军:跳舞机有一个上5积分,分别central, top, bottom, left, right分,区区足站立还是需要1点物理,从一个单纯的脚central点上须要2点体力,从一个点上移动到相邻 ...
- UVa 11178 Morley's Theorem (几何问题)
题意:给定三角形的三个点,让你求它每个角的三等分线所交的顶点. 析:根据自己的以前的数学知识,应该很容易想到思想,比如D点,就是应该求直线BD和CD的交点, 以前还得自己算,现在计算机帮你算,更方便, ...
- UVA - 10382 Watering Grass(几何)
题意:有一个矩形,n个圆.已知矩形的长宽和圆的半径,问最少需多少个圆将矩形完全覆盖. 分析: 1.首先求圆与矩形的长的交点,若无交点,则一定不能对用最少的圆覆盖矩形有贡献. 2.如果两个圆与矩形相交所 ...
- Java中实现SAX解析xml文件到MySQL数据库
大致步骤: 1.Java bean 2.DBHelper.java 3.重写DefaultHandler中的方法:MyHander.java 4.循环写数据库:SAXParserDemo.java ① ...
随机推荐
- VBA for AutoCAD
Download the Microsoft Visual Basic for Applications Module (VBA) 2016 Downloads AutoCAD 2016 VBA mo ...
- 【SQL】关系数据库概念及数据模型和关系模型
一.关系数据库 目前关系数据库是数据库应用的主流,许多数据库管理系统的数据模型都是基于关系数据模型开发的. 1)关系数据库:在一个给定的应用领域中,所有实体及实体之间联系的集合构成一个关系数据库. 2 ...
- Jmeter4.0----响应断言(6)
1.说明 一个HTTP请求发出去,怎么判断执行的任务是否成功呢?通过检查服务器响应数据,是否返回预期想要的数据,如果是,判断任务成功,反之任务失败. 作用:判断请求是否成功 2.步骤 第一步:添加 “ ...
- NET高性能IO
System.IO.Pipelines: .NET高性能IO https://www.cnblogs.com/xxfy1/p/9290235.html System.IO.Pipelines是一个新的 ...
- Nginx托管.Net Core应用程序
Nginx托管.Net Core应用程序 一.安装.Net Core 参考官方文档:https://www.microsoft.com/net/core#linuxcentos 1.添加dotnet产 ...
- CSS——三种页面引入方法
目的:为了把样式和内容分开,并且使网页元素更加丰富,引入了CSS CSS页面引入有三种方式: 1)内联式:比较不常用,因为内容和样式仍然在一起,不方便.示例: <!DOCTYPE html> ...
- nodejs 实践:express 最佳实践(七) 改造模块 connect2 解析
nodejs 实践:express 最佳实践(七) 改造模块 connect2 解析 nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs 的 ...
- 啊哈算法之宽搜BFS解救小哈
简述 本算法摘选自啊哈磊所著的<啊哈!算法>第四章第三节的题目——BFS算法再次解救小哈.文中代码使用C语言编写,博主通过阅读和理解,重新由Java代码实现了一遍,以此来理解BFS算法.关 ...
- JAVA 框架之面向对象设计原则
面向对象设计原则: 单一职责原则 SRP : 一个类或者行为只做一件事 . 降低代码冗余,提高可重用性,可维护性,可扩展性,可读性 使用组合形式 里氏替换原则 LSP : 所有引用基类 ...
- I/O操做总结(二)
文件的操作 这一节我们来讨论关于文件自身的操作 不浪费唾沫了,用代码说话…… 实例1:创建文件对象 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...