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