[學習筆記]閔可夫斯基和


定義p+q=(p.x+q.x,p.y+q.y),給定兩個點集,求{pi+qj}的凸包(凸殼)的問題

以求凸殼為例(凸包可以通過求上下凸殼然后拼湊):

顯而易見的結論是:

新凸殼上的點一定是由p和q的凸殼上的點相加之后構成的

求出p,q的凸殼,然后合並

合並方法:雙指針:

圖片by:shadowice1984

注意左右兩個圖的對應。發現就是走n+m-1步,路上的點加入新凸殼

開始時候,兩個指針p1,p2都在1位置,(p1,p2+1),(p1+1,p2)和(p1,p2)的斜率哪個更大。(叉積判斷即可)

相當於直接扔掉了一列或者一行

證明考慮反證法即可。

例題:CF1019E Raining season

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM