在奮戰了7個小時後才AC了這道題的人只能瞻仰在考場上AC的FHQ了。。。
代碼很恐怖,寫了350行8KB,最可惡的是一頁草稿紙的僞代碼和各種特殊情況。
涉及的幾個關鍵字:三維叉積、半平面交、梯形剖分
三維叉積的一個核心操作就是:三維旋系,另外還需要用來寫:面面交,面線交,判三維空間上下左右,二維投影。
具體做法是:
一束光線首先在每一個面上投一個影,然後這個投影需要和這個面求一個交集(這裏我用的是半平面交),之後再反射遞歸。
計算答案時將每個面上曾經經過的所有投影求一個面積並(梯形剖分)。
當然細節很多,不過還好棟哥沒有出細節太多的數據,本來我4.30小時過了樣例之後直接去測就已經過了7個點,但令我哭笑不得的是第6個點(全部面積之和)和第7個點(0)錯了。。。之後又發現疏漏了幾種特殊情況。。
很鬱悶的是半平面交又錯了老地方:最開始的時候忘記判平行和判無解
扣的: