1. 程式人生 > >圖論1——基礎

圖論1——基礎

圖論 ++ stream 鄰接表 ext style spa 基本 簡單

1:圖的構成:頂點和邊(分有向無向)

2:圖的基本定理: a):歐拉定理(一筆畫定理)

b): 握手引理:各頂點度的和等於邊的數量和的兩倍

推論1:各頂點的度和和一定為偶數

推論2:奇數度頂點一定有偶數個

3:正則圖:每個頂點的度均為k則稱為k正則圖

4:圖的存儲:

a):鄰接矩陣

#include<iostream>

#include<cstring> int a[5001][5001]; int main() { int n,m,i,u,v,w; cin>>n>>m; for (i=1;i<=m;i++) { cin>u>>v>>w;
a[u][v]=w; a[v][u]=w; //若非簡單圖則要判斷是否更新 } return 0; }

b): 鄰接表

for (i=0;i<=n;i++) { end[i]=0; } for (i=1;i<=m;i++) { scanf("%lld%lld",&u,&v); if (end[u]==0) { end[u]=i*2-1; edge[i*2-1]=v; next[i*2-1]=0; } else { next[i*2-1]=end[u]; edge[i*2-1]=v; end[u]=i*2-1;
} if (end[v]==0) { end[v]=i*2; edge[i*2]=u; next[i*2]=0; } else { next[i*2]=end[v]; edge[i*2]=u; end[v]=i*2; } }

5:圖的搜索——dfs/bfs(基本不用,此處略)

圖論1——基礎