在奋战了7个小时后才AC了这道题的人只能瞻仰在考场上AC的FHQ了。。。
代码很恐怖,写了350行8KB,最可恶的是一页草稿纸的伪代码和各种特殊情况。
涉及的几个关键字:三维叉积、半平面交、梯形剖分
三维叉积的一个核心操作就是:三维旋系,另外还需要用来写:面面交,面线交,判三维空间上下左右,二维投影。
具体做法是:
一束光线首先在每一个面上投一个影,然后这个投影需要和这个面求一个交集(这里我用的是半平面交),之后再反射递归。
计算答案时将每个面上曾经经过的所有投影求一个面积并(梯形剖分)。
当然细节很多,不过还好栋哥没有出细节太多的数据,本来我4.30小时过了样例之后直接去测就已经过了7个点,但令我哭笑不得的是第6个点(全部面积之和)和第7个点(0)错了。。。之后又发现疏漏了几种特殊情况。。
很郁闷的是半平面交又错了老地方:最开始的时候忘记判平行和判无解
扣的: