题意:分段用椎台面积近似计算体积,然后计算出近似值和真实值的相对误差

微积分加数学。

平头椎台的体积计算公式:

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 (几何,微积分)的更多相关文章

  1. 递推DP UVA 1291 Dance Dance Revolution

    题目传送门 题意:给一串跳舞的动作,至少一只脚落到指定的位置,不同的走法有不同的体力消耗,问最小体力消费多少分析:dp[i][j][k] 表示前i个动作,当前状态(j, k)的最小消费,状态转移方程: ...

  2. UVA 11646 - Athletics Track || UVA 11817 - Tunnelling the Earth 几何

    题目大意: 两题几何水题. 1.UVA 11646 - Athletics Track 如图,体育场的跑道一圈400米,其中弯道是两段半径相同的圆弧,已知矩形的长宽比例为a:b,求长和宽的具体数值. ...

  3. UVA 11178 Morley's Theorem(几何)

    Morley's Theorem [题目链接]Morley's Theorem [题目类型]几何 &题解: 蓝书P259 简单的几何模拟,但要熟练的应用模板,还有注意模板的适用范围和传参不要传 ...

  4. UVA 11800 - Determine the Shape 几何

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  5. UVA 11437 - Triangle Fun 向量几何

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  6. UVA 1291 Dance Dance Revolution(DP)

    意甲冠军:跳舞机有一个上5积分,分别central, top, bottom, left, right分,区区足站立还是需要1点物理,从一个单纯的脚central点上须要2点体力,从一个点上移动到相邻 ...

  7. UVa 11178 Morley's Theorem (几何问题)

    题意:给定三角形的三个点,让你求它每个角的三等分线所交的顶点. 析:根据自己的以前的数学知识,应该很容易想到思想,比如D点,就是应该求直线BD和CD的交点, 以前还得自己算,现在计算机帮你算,更方便, ...

  8. UVA - 10382 Watering Grass(几何)

    题意:有一个矩形,n个圆.已知矩形的长宽和圆的半径,问最少需多少个圆将矩形完全覆盖. 分析: 1.首先求圆与矩形的长的交点,若无交点,则一定不能对用最少的圆覆盖矩形有贡献. 2.如果两个圆与矩形相交所 ...

  9. Java中实现SAX解析xml文件到MySQL数据库

    大致步骤: 1.Java bean 2.DBHelper.java 3.重写DefaultHandler中的方法:MyHander.java 4.循环写数据库:SAXParserDemo.java ① ...

随机推荐

  1. Object有哪些公用的方法?

    Object是所有类的父类,任何类都默认继承Object. public class Demo { public static void main(String[] args) { Object ob ...

  2. AngularJS 2.0 学习

    前提: 下载和安装node.js 和 npm. https://nodejs.org/en/download/ npm安装 需要自己google 安装好之后,可以在cmd窗口中查看安装的版本 node ...

  3. 数据库路由中间件MyCat - 源代码篇(3)

    此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 2. 前端连接建立与认证 Title:MySql连接建立以及认证过程client->MySql:1.T ...

  4. ZOJ2868【折半】

    题意: 把一堆数分成两堆,使得两堆的差值最小. 思路: 先把一堆数分成两堆,然后用个set存一堆的所有组合,枚举第一堆的状态,二分查找第二堆接近half_value. 瞎说时间复杂度:O(2^17*3 ...

  5. APP携参安装技术怎样帮助APP推广

    APP 如何自动实现携带参数安装?这是许多开发者感兴趣的问题,毕竟在 APP 开发的许多逻辑上常常不可避免的需要判断安装来源,比如:广告投放.用户邀请.用户行为.社交分享等 APP 推广环节,国内的 ...

  6. python进阶01 面向对象、类、实例、属性封装、实例方法

    python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“ ...

  7. hdu2466-Shell Pyramid

    先预处理一下层和行所对应的数,然后二分三个答案,注意细节   #include<cstdio> #define inf 0x3f3f3f3f ; typedef __int64 LL; u ...

  8. php:判断 是否开启 SSL,CURL,ZIP,GD2,MYSQL,是否安装MEMCACHED

    对于php的开发环境,通常需要去先判断下一些扩展和服务时不时已经可用~ 看过的欢迎拍砖,给意见~~ <?php /** * 判断 是否开启 SSL,CURL,ZIP,GD2,MYSQL,是否安装 ...

  9. Spring创建对象的几种方法

    一.通过构造器 无参构造器 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...

  10. Java的常量接口思考,项目中的常量是放在接口里还是放在类里呢?

    最近在看一本书 Java与模式,里面提了一句不建议使用常量接口,甚至举了个java源码的反例, 蛋疼的是没有说为什么? 查了网上一圈发现他们也是知道怎么做而不知道为什么这么做. 然后我只能找谷歌了,翻 ...