传送门

二维平面四个点求凸包面积->任选三个点面积之和/2

三维平面五个点求凸包体积->任选四个点体积之和/2

二维平面三个点面积->二个二维向量行列式值的绝对值/2

三维平面四个点体积->三个三维向量行列式值的绝对值/6

 //Achen
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<vector>
#include<cstdio>
#include<queue>
#include<cmath>
#include<set>
#include<map>
#define Formylove return 0
#define For(i,a,b) for(int i=(a);i<=(b);i++)
#define Rep(i,a,b) for(int i=(a);i>=(b);i--)
typedef long long LL;
typedef double db;
using namespace std; template<typename T>void read(T &x) {
char ch=getchar(); x=; T f=;
while(ch!='-'&&(ch<''||ch>'')) ch=getchar();
if(ch=='-') f=-,ch=getchar();
for(;ch>=''&&ch<='';ch=getchar()) x=x*+ch-''; x*=f;
} struct pt {
db x,y,z;
pt(db x=0.0,db y=0.0,db z=0.0):x(x),y(y),z(z){}
}p[];
pt operator -(const pt&A,const pt&B) { return pt(A.x-B.x,A.y-B.y,A.z-B.z); } db calc(pt p1,pt p2,pt p3,pt p4) {
p1=p1-p4; p2=p2-p4; p3=p3-p4;
db rs=(p1.x*p2.y*p3.z-p3.x*p2.y*p1.z+p1.y*p2.z*p3.x-p1.x*p2.z*p3.y+p1.z*p2.x*p3.y-p1.y*p2.x*p3.z);
return fabs(rs)/6.0;
} int main() {
#ifdef ANS
freopen(".in","r",stdin);
freopen(".out","w",stdout);
#endif
while(scanf("%lf%lf%lf",&p[].x,&p[].y,&p[].z)!=EOF) {
db ans=;
For(i,,) scanf("%lf%lf%lf",&p[i].x,&p[i].y,&p[i].z);
For(i,,) For(j,i+,) For(k,j+,) For(l,k+,)
ans+=calc(p[i],p[j],p[k],p[l]);
ans/=2.0;
printf("%.2lf\n",ans);
}
Formylove;
}

最新文章

  1. AT指令(转)
  2. C# Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面
  3. css样式管理
  4. Android 动画特效
  5. oralce之存储过程
  6. iOS开发那些事-iOS6苹果地图实用开发
  7. NodeJs获取函数名称和函数操作整理
  8. jQuery banner 滑动
  9. PPT 制作必备工具
  10. 窗体的Alpha通道透明色支持(一旦 Form 被定义为利用 LayeredWindow ,窗口的绘图不再响应沿用多年的 WM_Paint 消息)
  11. 持续集成环境Gitlab-CI的官方安装过程解析
  12. 你真的会 snapshot 吗? - 每天5分钟玩转 OpenStack(163)
  13. js生成word中图片处理
  14. 一个貌似比较吊的递归转换为loop--总算成功了.--第二弹
  15. 页面间固定参数,通过cookie传值
  16. 智能ERP 交接班统计异常的解决方法
  17. hdu 2476&quot;String painter&quot;(区间DP)
  18. 单表(SSM、SpringBoot、SpringCloud、Freemaker、BootStrap等)
  19. python集合相关操作
  20. 用 CSS 实现三角形与平行四边形

热门文章

  1. 5 centos 6.10 三节点安装apache hadoop 2.9.1
  2. android dialog,popupwindow,toast窗口的添加机制
  3. linux安装JSONCPP
  4. gitee.ZC_blog快速方案
  5. 一次特殊的“VARCHAR转numeric失败”错误记录
  6. Java相关面试题总结+答案(九)
  7. [19/05/14-星期二] HTML_body标签(列表标签和图片标签)
  8. django shell的基本使用
  9. 解决MarkDown打开出现:awesomium web-brower framework This view has crashed
  10. js Object的属性 Configurable,Enumerable,Writable,Value,Getter,Setter