閔可夫斯基和

2021-10-08 04:15:22 字數 1223 閱讀 7351

這裡是有圖的講解

兩個點集 a,b

a,ba,

b 的閔可夫斯基和為 c

=c=\

c=兩個凸包的閔可夫斯基和是由兩個凸包的邊平移組成的凸包。

初始點為兩個凸包的左下角相加,然後第乙個向量由兩個凸包中極角小的邊組成,依次移動兩個凸包的邊,比較極角,然後決定哪個先放。

例題:loj#2549. 「jsoi2018」戰爭

講解在上面部落格裡有。

code:

#include

#define maxn 100005

#define ll long long

using

namespace std;

int n,m,k,q;

struct point

point operator+(

const point &p)

point operator-(

const point &p)

ll operator*(

const point &p)

bool

operator

<

(const point &p)

const

}a[maxn]

,b[maxn]

,v1[maxn]

,v2[maxn]

,p[maxn]

;bool

cmpang

(point a,point b)

void

convex

(point *a,

int&n)

void

minkowski()

bool

in(point v)

intmain()

upd

updup

d:m in

kows

ki

minkowski

minkow

ski 寫法可以更簡潔,不用把向量存下來,每次加入的點其實就是 ai+

bj

a_i+b_j

ai​+bj

​,只需要判斷 i++

i++i+

+ 還是 j++

j++j+

+ 就可以了。比如這樣:

void

minkowski()

學習筆記第十五節 閔可夫斯基和

閔可夫斯基和型別的問題是這樣子的,給出兩個點集a和b,要你求a b的凸包大小。這個就很有趣了。因為a b中的點集中一共有 當然,凸包肯定會存在於a的凸包 b的凸包上。但是它也可能出兩個凸多邊形來卡你啊。這時,大救星出現了,閔可夫斯基和。我們可以給這個兩個點集做一次凸包,然後再從這兩個點集中分別x最小...

洛谷P5114 八月臉 邊分治 閔可夫斯基和

題意 一棵 n nn 個點的樹,每個點有兩個權值 ai,bi a i,b i ai bi 有黑白兩種顏色。m mm 次詢問,每次給定乙個 k kk,求一條端點異色的路徑,使得 k a i b ik sum a i sum b i k ai bi 最大化。n 2 105 n leq 2 times 1...

明可夫斯基距離和馬氏距離

在機器學習中,距離是乙個非常形象並且常用的概念。在分類和聚類問題中,距離的作用尤為明顯。除此之外,在回歸問題,甚至自然語言處理問題上,距離也有其相應的應用。除了距離之外,相似係數也是解決這一問題的方法之一,顯而易見,距離和相似係數應該呈反比,距離越小越相似 距離越大越不同。距離主要是對不同的觀測進行...