HDU 1714 RedField 一重积分
来源:互联网 发布:灯光照明设计软件 编辑:程序博客网 时间:2024/05/17 01:15
题目链接:点击打开链接
给定椭圆的标准方程,椭圆外一点(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;}
0 0
- HDU 1714 RedField 一重积分
- hdu 1714 RedField(积分问题)
- hdu 1714 RedField
- 【HDU 1714】【几何】RedField
- hdu 1714 RedField
- 重积分
- 数值计算:一重积分计算的C++实现
- matlab四重积分
- 第10章 重积分
- hdu 1071定积分
- hdu 1724 辛普森积分
- hdu 4969 物理/积分
- hdu 4969 平面几何积分
- hdu 5761(积分)
- HDU 5826 数学积分
- hdu 1071 定积分
- HDU 1724 (simpson积分)
- 定积分、曲线积分、重积分、曲面积分的几何意义
- js 转译 html 文件
- 扩展欧几里得算法 与 应用
- Android高斯模糊效果实现方案及性能对比
- Leetcode Symmetric Tree 对称二叉树
- 用123456789这个数字,不改变顺序,用加,减号连接起来,使结果等于100
- HDU 1714 RedField 一重积分
- Linux wireshark 抓取802.11数据包
- egret中实现敏感词检测
- 【cocos2d-x游戏开发】cocos中的三种缓存类
- Android 侧滑缩放菜单(HorizontalScrollView简单实现)
- OCday5 NSString, NSArray
- Qt Quick学习笔记之Qt开发环境快速上手
- ACDREAM 02B 瑶瑶带你玩激光坦克(暴力专场)
- 第三方SDK