有乙個 mm
行 nn
列的點陣,相鄰兩點可以相連。一條縱向的連線花費乙個單位,一條橫向的連線花費兩個單位。某些點之間已經有連線了,試問至少還需要花費多少個單位才能使所有的點全部連通。輸入格式第一行輸入兩個正整數 mm
和 nn
。以下若干行每行四個正整數 x1,y1,x2,y2x1,y1,x2,y2
,表示第 x1x1
行第 y1y1
列的點和第 x2x2
行第 y2y2
列的點已經有連線。輸入保證|x1−x2|+|y1−y2|=1|x1−x2|+|y1−y2|=1
。輸出格式輸出使得連通所有點還需要的最小花費。資料範圍1≤m,n≤10001≤有乙個 mm
行 nn
列的點陣,相鄰兩點可以相連。一條縱向的連線花費乙個單位,一條橫向的連線花費兩個單位。某些點之間已經有連線了,試問至少還需要花費多少個單位才能使所有的點全部連通。輸入格式第一行輸入兩個正整數 mm
和 nn
。以下若干行每行四個正整數 x1,y1,x2,y2x1,y1,x2,y2
,表示第 x1x1
行第 y1y1
列的點和第 x2x2
行第 y2y2
列的點已經有連線。輸入保證|x1−x2|+|y1−y2|=1|x1−x2|+|y1−y2|=1
。輸出格式輸出使得連通所有點還需要的最小花費。資料範圍1≤m,n≤10001≤m,n≤1000
0≤已經存在的連線數≤100000≤已經存在的連線數≤10000
輸入樣例:2 2
1 1 2 1
輸出樣例:3m,n≤1000
0≤已經存在的連線數≤100000≤已經
在的連線數≤10000
輸入樣例:2 2
1 1 2 1
輸出樣例:3有乙個 mm
行 nn
列的點陣,相鄰兩點可以相連。一條縱向的連線花費乙個單位,一條橫向的連線花費兩個單位。某些點之間已經有連線了,試問至少還需要花費多少個單位才能使所有的點全部連通。輸入格式第一行輸入兩個正整數 mm
和 nn
。以下若干行每行四個正整數 x1,y1,x2,y2x1,y1,x2,y2
,表示第 x1x1
行第 y1y1
列的點和第 x2x2
行第 y2y2
列的點已經有連線。輸入保證|x1−x2|+|y1−y2|=1|x1−x2|+|y1−y2|=1
。輸出格式輸出使得連通所有點還需要的最小花費。資料範圍1≤m,n≤10001≤m,n≤1000
0≤已經存在的連線數≤100000≤已經存在的連線數≤10000
輸入樣例:2 2
1 1 2 1
輸出樣例:3
#include
#include
#include
#include
using
namespace std;
const
int n =
1010
, m = n * n, k =
2* n * n;
int n, m, k;
int ids[n]
[n];
int p[m]
;struct edgee[k]
;int
find
(int x)
void
get_edge()
, dy[4]
=, dw[4]
=;for(
int z =
0; z <
2; z ++
)for
(int i =
1; i <= n; i ++
)for
(int j =
1; j <= m; j ++
)for
(int u =
0; u <
4; u ++)if
(u %
2== z);}
}}intmain()
get_edge()
;int res =0;
for(
int i =
0; i < k; i ++)}
cout << res << endl;
return0;
}
連線的管道(最小生成樹)
題目 老 jack 有一片農田,以往幾年都是靠天吃飯的。但是今年老天格外的不開眼,大旱。所以老 jack 決定用管道將他的所有相鄰的農田全部都串聯起來,這樣他就可以從遠處引水過來進行灌溉了。當老 jack 買完所有鋪設在每塊農田內部的管道的時候,老 jack 遇到了新的難題,因為每一塊農田的地勢高度...
最小生成樹 次小生成樹
一 最小生成樹 說到生成樹首先要解釋一下樹,樹是乙個聯通的無向無環圖,多棵樹的集合則被稱為森林。因此,樹具有許多性質 1.兩點之間的路徑是唯一的。2.邊數等於點數減一。3.連線任意兩點都會生成乙個環。對於乙個無向聯通圖g的子圖,如果它包含g的所有點,則它被稱為g的生成樹,而各邊權和最小的生成樹則被稱...
最小生成樹
package 圖 最小生成樹是用最少的邊吧把所有的節點連線起來。於是和圖的深度優先搜素差不多。class stack public void push int key public int pop 檢視棧頂的元素 public int peek public boolean isempty cla...