2021牛客暑期多校训练营2 F Girlfriend (阿波罗尼斯圆+简单几何)
F Girlfriend (阿波罗尼斯球+简单几何)
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<map>
#include<cstdio>
#include<cmath>
#include<iomanip>
#include<queue>
#define pi 3.1415926535
using namespace std;
typedef long long ll;
const int mod = 1e9 + 7;
typedef pair<int, int> pii;
const int N = 1e6 + 10;
void volume(double r1x, double r1y, double r1z, double r2x, double r2y, double r2z, double r1, double r2) {double d = sqrt((r1x - r2x) * (r1x - r2x) + (r1y - r2y) * (r1y - r2y) + (r1z - r2z) * (r1z - r2z));if (d >= r1 + r2) {printf("%.3lf\n", 0);}else if (d + r2 <= r1) {printf("%.3lf\n", 4 * 1.0 / 3 * 1.0 * pi * r2 * r2 * r2);}else if (d + r1 <= r2) {printf("%.3lf\n", 4 * 1.0 / 3 * 1.0 * pi * r1 * r1 * r1);}else {double ans = 0;double cosa = (r1 * r1 + d * d - r2 * r2) / (2.0 * r1 * d);double h1 = r1 - r1 * cosa;ans += pi * h1 * h1 * (r1 - h1 / 3.0);double cosb = (r2 * r2 + d * d - r1 * r1) / (2.0 * r2 * d);double h2 = r2 - r2 * cosb;ans += pi * h2 * h2 * (r2 - h2 / 3.0);printf("%.3lf\n", ans);}
}
int main() {double x[5], y[5], z[5];int t;cin >> t;while (t--){for (int i = 1; i <= 4; i++) {cin >> x[i] >> y[i] >> z[i];}double k1, k2;cin >> k1 >> k2;double dishu1 = 1 - k1 * k1;double a1 = (k1 * k1 * x[2] - x[1]) / dishu1, b1 = (k1 * k1 * y[2] - y[1]) / dishu1, c1 = (k1 * k1 * z[2] - z[1]) / dishu1;double d1 = ((x[1] * x[1] + y[1] * y[1] + z[1] * z[1]) - (k1 * k1 * (x[2] * x[2] + y[2] * y[2] + z[2] * z[2]))) / dishu1;double r1 = sqrt(a1 * a1 + b1 * b1 + c1 * c1 - d1);double dishu2 = 1 - k2 * k2;double a2 = (k2 * k2 * x[4] - x[3]) / dishu2, b2 = (k2 * k2 * y[4] - y[3]) / dishu2, c2 = (k2 * k2 * z[4] - z[3]) / dishu2;double d2 = ((x[3] * x[3] + y[3] * y[3] + z[3] * z[3]) - (k2 * k2 * (x[4] * x[4] + y[4] * y[4] + z[4] * z[4]))) / dishu2;double r2 = sqrt(a2 * a2 + b2 * b2 + c2 * c2 - d2);volume(a1, b1, c1, a2, b2, c2, r1, r2);}
}
2021牛客暑期多校训练营2 F Girlfriend (阿波罗尼斯圆+简单几何)相关推荐
- 2021牛客暑期多校训练营2 - F - Girlfriend ( 球体积相交 )
题目连接:点击进入 题目 题意 A.B.C.D.k1.k2 已知,根据不等式, P1 的取值会形成一个图形,P2 类似,求两个图形的交 思路 这个式子取等号是阿波罗尼斯圆,二维平面是圆,三维是球壳,取 ...
- 2021牛客暑期多校训练营7
2021牛客暑期多校训练营7 文章目录 2021牛客暑期多校训练营7 F:xay_loves_trees 解释 代码 H:xay_loves_count 解释 代码 I:xay_loves_or 解释 ...
- 2021牛客暑期多校训练营9
2021牛客暑期多校训练营9 题号 题目 知识点 A A Math Challenge B Best Subgraph C Cells D Divide-and-conquer on Tree E E ...
- 2021牛客暑期多校训练营5
2021牛客暑期多校训练营5 题号 题目 知识点 A Away from College B Boxes 概率 C Cheating and Stealing D Double Strings 线性d ...
- 2021牛客暑期多校训练营4
2021牛客暑期多校训练营4 题号 题目 知识点 A Course B Sample Game C LCS D Rebuild Tree E Tree Xor 思维+线段树 F Just a joke ...
- 2021牛客暑期多校训练营3
2021牛客暑期多校训练营3 题号 题目 知识点 A Guess and lies B Black and white C Minimum grid 二分图匹配 D Count E Math 数论+打 ...
- 2021牛客暑期多校训练营2
2021牛客暑期多校训练营2 题号 题目 知识点 A Arithmetic Progression B Cannon C Draw Grids D Er Ba Game E Gas Station F ...
- 2021牛客暑期多校训练营1
2021牛客暑期多校训练营1 题号 题目 知识点 难度 A Alice and Bob 博弈论 B Ball Dropping 计算几何 签到 C Cut the Tree D Determine t ...
- 2021牛客暑期多校训练营2,签到题CDFKI
2021牛客暑期多校训练营2 题号 标题 已通过代码 通过率 团队的状态 A Arithmetic Progression 点击查看 6/72 未通过 B Cannon 点击查看 34/104 未通过 ...
最新文章
- R语言ggplot2可视化时间序列数据:ggplot2可视化在时间轴上添加按月的箱图(boxplot)
- linux命令tar
- 使用 AngularJS NodeJS 实现基于token 的认证应用(转)
- 使用Picasso实现图片圆角和图片圆形
- 【java】Java异常处理总结
- 怎么给自己的python换源_windows/linux下如何更换Python的pip源
- [转].NET 开源项目 Polly 介绍
- centos8 kernel source 安装_什么?你在物理机上安装Oracle总失败?那就试试Docker吧
- oracle pl/sql 基础
- 安装操作系统的过程图解
- 手把手FFmpeg入门——视频解码+解封装
- c++ log函数_第18节 函数的形参和实参-Web前端开发之Javascript-王唯
- 计算机旅游网站论文,设计一个旅游网站 计算机专业毕业论文.doc
- python爬虫之爬取拉勾网
- 天干地支计算公式_求天干地支的计算方法,
- 10G Ethernet Mac IP核
- 老年旅游行业解析:媒体矩阵布局到业务板块梳理
- 基于Crawler4j的WEB爬虫
- 室内定位解决方案-最新全套文件
- 爬取了同事的微博粉丝,结果发现300+涨粉中,真爱粉只有4个!
热门文章
- QT中16进制二进制字符串的转换
- Flutter中打包Android项目及升级Android项目
- html clear属性值,CSS clear both清除浮动
- 更简洁的 CSS 清理浮动方式(使用 :after 伪类来提供浮动块后的 clear:both)
- 万网云虚拟主机 mysql_万网虚机_虚拟主机购买_云虚拟主机租用_网站空间价格_虚拟云主机 - 阿里云...
- 征服Node.js 7.x视频课程(1):Node.js入门-李宁-专题视频课程
- 跟李宁老师学Python视频课程(11):正则表达式-李宁-专题视频课程
- 申请、使用 twilio那些事
- 面试题:如何设计一个权限系统?
- SpringBoot系列之canal和kafka实现异步实时更新