HDU 1714 RedField 一重积分

题目链接:点击打开链接

给定椭圆的标准方程,椭圆外一点(x,y) 且 x>=a , abs(y)>=b

求阴影面积

先求出直线与椭圆的交点(x1, y1),

然后积分即可。

#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <stdlib.h>
#include <iomanip>
#include <string.h>
#include <limits.h>
#include <vector>
#include <string>
#include <time.h>
#include <math.h>
#include <queue>
#include <stack>
#include <set>
#include <map>
const double eps = 1e-8;
const double pi = acos(-1.0);
template <class T>
inline bool rd(T &ret) {
	char c; int sgn;
	if (c = getchar(), c == EOF) return 0;
	while (c != '-' && (c<'0' || c>'9')) c = getchar();
	sgn = (c == '-') ? -1 : 1;
	ret = (c == '-') ? 0 : (c - '0');
	while (c = getchar(), c >= '0'&&c <= '9') ret = ret * 10 + (c - '0');
	ret *= sgn;
	return 1;
}
template <class T>
inline void pt(T x) {
	if (x <0) { putchar('-'); x = -x; }
	if (x>9) pt(x / 10);
	putchar(x % 10 + '0');
}
using namespace std;
typedef long long ll;
double a, b, x, y;
int main(){
	int T; rd(T);
	while (T--){
		cin >> a >> b >> x >> y;
		y = abs(y);
		double k = y / x;
		double x1 = a*b / sqrt(b*b + a*a*k*k);
		double y1 = k * x1;
		double ans =  - x1*sqrt(a*a - x1*x1) / 2 + a*a*acos(x1 / a) / 2;
		ans *= b / a;
		ans += x1*y1 / 2;
		cout << fixed << setprecision(2) << ans << endl;
	}
	return 0;
}
时间: 2024-10-30 21:46:11

HDU 1714 RedField 一重积分的相关文章

hdu 1714 RedField

RedField Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 639    Accepted Submission(s): 213 Problem Description As the graph you see below, we named the red part "RedField".The read part i

HDU 1724 Ellipse [辛普森积分]

Ellipse Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1868    Accepted Submission(s): 792 Problem Description Math is important!! Many students failed in 2+2’s mathematical test, so let's AC t

HDU 1714 math

#include<stdio.h>#include<iostream>#include<math.h>#include<cmath>#include<stdio.h>using namespace std; int main(){    double a, b, x, y;    int n;    scanf("%d", &n);    while (n--)    {        scanf("%lf%

《University Calculus》-chaper13-多重积分-三重积分的引入

承接之前对一重积分和二重积分的介绍,这里我们自然的引出三重积分. 在二重积分的引入中,我们曾经埋下过一个小伏笔,二重积分的几何意义是求解一个体积,但是我们仅仅限定在了曲顶柱体的几何体,那么对于完全由曲面D包裹的空间D’,我们如何求其体积呢? 我们很自然的能够想到,从x.y.z三个维度作平行线,然后把D’分割成了n个小长方体,如下图. 伴随着n趋于无穷,我们可以完美的得到D’区域的体积. 个人认为,这个例子仅仅是为了自然的引出三重积分的概念和形式,在实际应用中,很难通过这个方法来计算各种各样不规则

SciPy 积分

章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy 插值 SciPy 输入输出 SciPy 线性代数 SciPy 图像处理 SciPy 优化 SciPy 信号处理 SciPy 统计 Scipy中的integrate模块提供了很多数值积分方法,例如,一重积分.二重积分.三重积分.多重积分.高斯积分等等. 下面介绍几种常用的积分函数. 一重积分 SciP

HLJU周赛5解题报告

Problem A: 求第K大数 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 81  Solved: 32 [Submit][Status][Web Board] [Edit] [TestData] Description 一天,喜欢看电影的DoubleQ 和 XXZ 来到一个神奇的电影院,这个电影院可以同时放映n部电影,每部电影都有相应的票价xi,面对着杀破狼2,侏罗纪世界,少年班等等好看的电影,他们最后商量,看票价第K大的电影,但是由于电影

PRML中文版(马春鹏)勘误表

前言: 最近在拜读网上流传的PRML中译版.翻译整体水平很高,应该是国内机器学习的首选读物.因此先向译者马春鹏先生表示致敬.阅读的过程中偶有卡壳,结合英文版原著,原来是有些笔误,根据我阅读进度,本文会不定期更新. 位置:p21 (1.32)下面 原文:把每个实数变量除以区间的宽度△ 建议:把每个实数变量划分为宽度为△的区间 位置:p23 中间 原文:袁术数据集 建议:原始数据集 位置:p23 (1.60) 式 原文:公式抄写有误,右括号位置不对.读者可参考原文 位置:p32 下半部分 原文:然后

微积分复习——外微分形式的微积分

注释: 1.本文欲使用外微分形式对面向工科的微积分作一次简单的整理复习. 2.相关的思维导图画出来有点乱且无法凸显个人比较care的推导过程,故不贴上来. 3.本文仅涉及微积分!不含级数和微分方程等. 4.个人是非数学出身不需要嗑太深,所以通篇外微分讨论不严格. 5.本文还有一个意图就是解释外微分. 在我们所讨论的三度空间(三维)中,能够出现的微分形式只有四种: 零次微分形式--函数 f 一次微分形式--线积分中出现的微分dx,dy,dz的一次式 二次微分形式--面积分中出现的微分dx,dy,d

快速学会有限元编程

<快速学会有限元编程> 一.前言 相信很多做过有限差分之后又想做做有限元的初学者会有和我一样的困惑,能看懂有限元算法的理论分析,但是真正应用到实际编程当中之前心里发怵,请教学过有限元程序的同学的时候,他们往往会,这个怎么怎么的简单,这个你怎么能不会?这个不就是什么什么吗bulabula...这时候你的心里一定和我一样有一万匹草泥马在心里奔腾,我特么的要是会还来问你,废话不多说,求人不如求己,这篇文章将会让你迅速掌握有限元最基础的编程思想. 二.以经典扩散方程为例 考虑如下扩散方程初边值问题 \