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

微积分加数学。

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

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(1)*4;int poly[8],Q[16],n;inline double calR(double x)
{double ans = poly[0];for(int i = 1; i <= n; i++ ){ans += poly[i]*pow(x,i);}return ans;
}inline double calint(int x){double ans = 0;for(int i = 0,sz = n<<1; i <= sz; i++ ){ans += Q[i]*pow(x,i+1)/(i+1);}return ans;
}inline double calV(int a,int b){memset(Q,0,sizeof(Q));for(int i = 0; i <= n; i++){for(int j = 0; 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)/2*R*slices;
}int main()
{int T;scanf("%d",&T);int cas = 0;while(T--){memset(poly,0,sizeof(poly));scanf("%d",&n);for(int i = n; i >= 0;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 = 2*pi/slices;double R1 = calR(a),S1 = calS(R1,dtheta,slices);double x = a+dx;double ape = 0;for(int i = 0; i < stacks; i++){double R2 = calR(x);double S2 = calS(R2,dtheta,slices);double dS = dx/3*(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*100);}return 0;
}

转载于:https://www.cnblogs.com/jerryRey/p/4655635.html

UVA 12905 Volume of Revolution (几何,微积分)相关推荐

  1. UVA - 11437 Triangle Fun(简单几何)

    题目链接:点击查看 题目大意:给出三个顶点A,B,C组成三角形,如题目中的图片所示,规定D,E,F分别为三条边的三等分点,现在要求三角形RPQ的面积 题目分析:利用向量先求出DEF三点,再利用线段相交 ...

  2. uva 1291 - Dance Dance Revolution ( dp )

    本文出自   http://blog.csdn.net/shuangde800 题目:点击打开链接 题目大意 如上图,这是一个跳舞机,初始状态两个脚都在0,  状态表示为(0, 0), 然后跳舞机会给 ...

  3. canvas示例样式_使用js canvas和atari vcs trivia制作基本html游戏的快速示例

    canvas示例样式 If you are anything like I was, you came into the programming world with some kind of fan ...

  4. 【Blender】乐高生成器——材质节点与几何节点制作的笔记分享

    乐高生成器 最近一直在研究blender有关节点的工作逻辑,发现了一个用节点制作乐高生成器的教程挺好玩,练习做了一些模型案例,分享制作过程笔记和部分技巧点的总结 (注意该案例需要应用在blender ...

  5. 数学术语的英汉对照(权威,全面)

    abbreviation 简写符号:简写 abscissa 横坐标 absolute complement 绝对补集 absolute error 绝对误差 absolute inequality 绝 ...

  6. 数学英语词汇 (1)

    abbreviation 简写符号:简写 abscissa 横坐标 absolute complement 绝对补集 absolute error 绝对误差 absolute inequality 绝 ...

  7. 高等数学术语英汉对照

    数学术语的英汉对照(权威,全面)English Chinese abbreviation 简写符号:简写 abscissa 横坐标 absolute complement 绝对补集 absolute ...

  8. 【今日CV 计算机视觉论文速览】Tue, 26 Feb 2019

    今日CS.CV计算机视觉论文速览 Tue, 26 Feb 2019 Totally 40 papers Interesting: DDFlow从非标签数据中提炼出光流,利用教-学模型来实现无标签数据的 ...

  9. KaTeX 数学符号列表

    文章目录 希腊字母 数学结构 Math mode accents 基本运算 分隔符 注释 函数 逻辑理论 集合和概率 几何 微积分 线性代数 群论 KaTeX 是一个快速,易于使用的JavaScrip ...

最新文章

  1. mybatis 一对多_Springboot整合Mybatis实现级联一对多CRUD操作
  2. Postgres-XL部署记录(一)
  3. MySQL复合条件连接查询
  4. 前端传数据到后台部分接收成功,部分接收失败
  5. Bootstrap 中: data-toggle 与 data-target 的作用
  6. EL与JSTL注意事项汇总
  7. 树状数组(搬运自维基百科)
  8. bootstrap 图标和文字对齐
  9. Atitit 高并发 性能指标 与压测工具 压测方法 目录 1. 性能的几个指标 1 1.1. 主要是响应时间(Response time) 1 1.2. 2.吞吐量(Throughput) 1 1
  10. webSSH如何安装?如何使用?解决Web端远程连接终端~~运维篇
  11. iframe中的方法
  12. 南华大学计算机有调剂名单吗,南华大学调剂公告
  13. ubuntu 下载jdk1.8
  14. 水下机器人之电机控制
  15. MySQL学生综合测评系统_大学生综合测评系统的设计和实现(MySQL)
  16. business,firm, company, corporation, enterprise等区别CentOS(Community Enterprise Operating System)想到
  17. html固定页脚布局及样式,html页脚固定在底部的方法
  18. ijkplayer eclipse 运行错误解决java.lanBinary XML file line #16: Error inflating class tv.danmaku.ijk.media
  19. 三星手机更新应用后就无服务器,三星手机正在完成系统更新怎么办
  20. 经营人脉1--转自通信人家园

热门文章

  1. hui后台框架html页面中的图标,HUI
  2. win10 1073linux密码,Linux Bash on Win10 忘记密码解决
  3. OMEN惠普HP暗夜精灵5:win10下安装Ubuntu16.04双系统(win10+linux)
  4. Pandownload 开发者被抓了,但是其背后,百度难道不需要反思吗?
  5. SoapUI导出响应文件
  6. 基于sinc的音频重采样(一):原理
  7. 形式语言与自动机 Part.1绪论, Part.2 语言与文法
  8. 电脑报价管理系统C语言,C语言笔记本电脑销售系统课设(附源码).doc
  9. 国潮风彩色手绘年俗年画春节插画素材
  10. 解决笔记本电脑开机速度缓慢的几种措施,亲测有效