省赛3J题 Fruit Ninja II
来源:互联网 发布:知乎 可怕的事 编辑:程序博客网 时间:2024/05/17 23:16
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2416
推导过程如下:
首先,题意是求切完西瓜后两半中大的。如果不是对半切,那么:
其中,半椭球体积易算:
而,积分体积推导过程如下:
在多元函数积分学中,三重积分是用于计算任意(三元)函数的体积的,但此次不采用三重积分或简化后的三重积分(二重积分),采用一个一重积分,即在物理中广泛运用的积分简化思想,“元素法”。
首先,令
化简:
带入
同除,整理得:
由椭圆面积公式:
(a不是题目中的a,b也不是题目中的b)
知:
又知:
故:
积分得:
故:
另注意一点,如果h>=b,表示没有切到,故:
题外话:为何这么做?
由积分定义及其理解可知,一个立体的体积是连续的平面片面积之和,也印证了,无穷多个0相加,结果可以是任意值。
原来的那个图丑死了,果断上matlab
综上分析,不难得出以下代码:
#include <iostream>#include <cstdio>#include <cmath>using namespace std;#define pi acos(-1.0)int main(){ ios::sync_with_stdio(false);//freopen("E:\\data1.in","r",stdin); //freopen("E:\\out1.txt","w",stdout); int t; cin>>t; for (int i=1; i<=t; ++i) {double a,b,h; cin>>a>>b>>h; if (h>=b) { printf("Case %d: %.3lf\n",i,4.0*pi*a*b*b/3); } else{double s = 2.0*pi*a*b*b/3+pi*a*h*(b-h*h/(3*b));printf("Case %d: %.3lf\n",i,s);} }}
- 省赛3J题 Fruit Ninja II
- Sdut 2416 Fruit Ninja II(山东省第三届ACM省赛 J 题)(解析几何)
- SDUT2416 Fruit Ninja II
- Fruit Ninja II (微积分)
- SDUT 2416:Fruit Ninja II
- 2013山东省第三届ACM省赛 Fruit Ninja II
- SDUT Fruit Ninja II (2416 积分)
- 【SDUT2416】Fruit Ninja II——积分
- 第三届山东省ACM Fruit Ninja II
- Fruit Ninja
- [2012山东ACM省赛] Fruit Ninja II (三重积分,椭球体积)
- BNU 24192 Fruit Ninja (想法题)
- 山东省2012年第三届省赛之Fruit Ninja II
- 山东省第三届ACM大学生程序设计竞赛 Fruit Ninja II
- hdu 3952 Fruit Ninja
- hdu 4000 Fruit Ninja
- hdu 4000 Fruit Ninja
- hdu 4106 Fruit Ninja
- Centos下安装LAMP
- Log的层次化和Dump工具:想起PM的点滴(3)
- 关于twemproxy和redis分布式
- 排序系列--选择排序
- UITextView点击键盘Done返回
- 省赛3J题 Fruit Ninja II
- ios navigationController中界面跳转 :X–> A–>B–>C 返回 C–>A
- 日期时间类
- c++之ctype.h
- java日期处理
- linux线程
- 牛腩——相对地址和绝对地址
- NoSQL学习之路(四):创建、读取、更新、删除(CRUD)
- 请不要做浮躁的嵌入式系统工程师