bzoj1964: hull 三维凸包
2024-10-07 12:37:11
二维平面四个点求凸包面积->任选三个点面积之和/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;
}
最新文章
- AT指令(转)
- C# Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面
- css样式管理
- Android 动画特效
- oralce之存储过程
- iOS开发那些事-iOS6苹果地图实用开发
- NodeJs获取函数名称和函数操作整理
- jQuery banner 滑动
- PPT 制作必备工具
- 窗体的Alpha通道透明色支持(一旦 Form 被定义为利用 LayeredWindow ,窗口的绘图不再响应沿用多年的 WM_Paint 消息)
- 持续集成环境Gitlab-CI的官方安装过程解析
- 你真的会 snapshot 吗? - 每天5分钟玩转 OpenStack(163)
- js生成word中图片处理
- 一个貌似比较吊的递归转换为loop--总算成功了.--第二弹
- 页面间固定参数,通过cookie传值
- 智能ERP 交接班统计异常的解决方法
- hdu 2476";String painter";(区间DP)
- 单表(SSM、SpringBoot、SpringCloud、Freemaker、BootStrap等)
- python集合相关操作
- 用 CSS 实现三角形与平行四边形
热门文章
- 5 centos 6.10 三节点安装apache hadoop 2.9.1
- android dialog,popupwindow,toast窗口的添加机制
- linux安装JSONCPP
- gitee.ZC_blog快速方案
- 一次特殊的“VARCHAR转numeric失败”错误记录
- Java相关面试题总结+答案(九)
- [19/05/14-星期二] HTML_body标签(列表标签和图片标签)
- django shell的基本使用
- 解决MarkDown打开出现:awesomium web-brower framework This view has crashed
- js Object的属性 Configurable,Enumerable,Writable,Value,Getter,Setter