第十个点出现了所有点共面的情况,请小心!
|
|
先吐槽自己把减号重载错了WA无数次...
再想吐槽为毛把精度设成1e-15或者1e-20就过不了,设成1e-10就过了??!! |
|
|
|
%%%
题目 63 [HNOI 2004] 金属包裹
2016-08-28 15:32:39
|
|
额..写完了才发现自己写的是求最小体积的三维凸包...
题目 63 [HNOI 2004] 金属包裹
2016-08-28 15:08:49
|
|
我就占楼玩,忽略我
题目 63 [HNOI 2004] 金属包裹
2016-03-28 19:46:56
|
|
重新写了卷包裹法把O(n^4)优化到了O(nh),h为三维凸包上的顶点数,但被精度卡了一万次。。。。。
题目 63 [HNOI 2004] 金属包裹
2015-10-19 16:20:34
|
|
回复 @cstdio : 会不会是这里scanf比cin慢
题目 63 [HNOI 2004] 金属包裹
2015-03-07 22:17:20
|
|
尼玛,明明是一模一样的算法我写出来就是最慢的那个……
|
|
法向量,真是个强大的东西。
几乎可以解决空间中的一切问题。 从点点距离,点面距离,线线距离,面面距离,线面角,二面角,异面直线所成角,四点三棱锥体积,都是渣渣。 再加上行列式和平面方程的辅助。只要有坐标,就几乎没有法向量解决不了的问题。 ----------------------------------------------------------------------------------------------------华丽丽的分割线 坑爹的这题,还要使点发生微量波动,否则就容易出现共面的点,面积计算重复(本来不知道如何解决 共面问题,搜索大神QhelDIV的题解才解决这个问题,在此本蒟蒻膜拜神犇) 可以用随机函数实现 三角形面积用向量叉乘(等于叉乘1/2)解决 三角形面积的2倍等于两个向量的叉乘向量(a,b,c), 而这个向量等价于行列式 \[ {\bf{A}} = \left(\begin{array}{lll} i & j & k\\ x2-x1 & y2-y1 & z2-z1\\ x3-x1 & y3-y1 & z3-z1\\ \end{array}\right)\] 若求出该向量的表达式为ai+bj+ck; 则该向量的模的一半即为三角形的面积S=0.5*sqrt(a^2+b^2+c^2); 判断金属最外层的表面方法一:QhelDIV光神法 建立三个点的两个向量的叉乘 求出(叉乘向量),将其他的点和这三个点中任意一个点做一条向量,求该向量与叉乘向量的数量积,如果全部都是正数或负数 则说明其他的点都在这三个点组成平面的一侧,则该三个点就是最外层之一 我的原创方法二: 直接求出三角形三个点的平面方程,若其他的点(x,y,z),令S=(Ax+By+Cz+D)(带入平面方程)若S全部同号,则为最外层) 该题细节非常多,需要注意 关于行列式的概念与应用:可以百度,也可以看《线性代数》。
题目 63 [HNOI 2004] 金属包裹
2015-03-05 22:41:41
|
|
orz 光牛 把金属包裹这题推掉了
题目 63 [HNOI 2004] 金属包裹
2013-03-06 14:40:17
|
|
又是喜闻乐见的精度问题
题目 63 [HNOI 2004] 金属包裹
2013-03-04 20:13:02
|