FZU 2087 統計樹邊

2021-07-10 09:10:15 字數 1257 閱讀 9290

problem 2087 統計樹邊

accept: 197 submit: 571

time limit: 1000 msec memory limit : 32768 kb

problem description

在圖論中,樹:任意兩個頂點間有且只有一條路徑的圖。

生成樹:包含了圖中所有頂點的一種樹。

最小生成樹:對於連通的帶權圖(連通網)g,其生成樹也是帶權的。生成樹t各邊的權值總和稱為該樹的權,權最小的生成樹稱為g的最小生成樹(minimum spanning tree)。最小生成樹可簡記為mst。

但是,對於乙個圖而言,最小生成樹並不是唯一的。

現在,給你乙個連通的有權無向圖,圖中不包含有自環和重邊,你的任務就是尋找出有多少條邊,它至少在乙個最小生成樹里。圖保證連通。

input

輸入資料第一行包含乙個整數t,表示測試資料的組數。對於每組測試資料:

第一行包含兩個整數n,m(1

#include 

#include

#include

#include

#include

#include

using

namespace

std;

#define max 100000

struct node

a[max+5];

int father[max+5];

int n,m;

int find(int x)

int cmp(node a,node b)

sort(a,a+m,cmp);

for(int i=1;i<=n;i++)

father[i]=i;

int ans=0;

int i=0;

while(iint j=i;

while(a[j].w==a[j+1].w)

int xx=find(a[j].x);

int yy=find(a[j].y);

if(xx!=yy)

ans++;

j=i;

while(a[j].w==a[j+1].w)

xx=find(a[j].x);

yy=find(a[j].y);

if(xx!=yy)

father[xx]=yy;

i=j+1;

}printf("%d\n",ans);

}return

0;}

FZU 2087 統計樹邊

description 在圖論中,樹 任意兩個頂點間有且只有一條路徑的圖。生成樹 包含了圖中所有頂點的一種樹。最小生成樹 對於連通的帶權圖 連通網 g,其生成樹也是帶權的。生成樹t各邊的權值總和稱為該樹的權,權最小的生成樹稱為g的最小生成樹 minimum spanning tree 最小生成樹可簡...

FZU 2087 統計樹邊

題意 給出乙個有n個點m條邊的圖,沒有重邊和自環,問有多少條邊可以是最少生成樹上的邊 思路 對kruscal不熟悉 沒有想出來,圖上只有2種邊,一種是最少生成樹上的邊,一種不是最少生成樹上的邊,每次貪心的時候有權值相同且不在同乙個集合的邊res 之後將這些邊全放進生成樹的集合裡,最終得到的答案就是所...

FZU 2087 統計樹邊 (最小生成樹變形)

題目鏈結 邊可以分為2類,一類是可以構成mst,另一類是不可以的,用並查集做的時候,檢查權重相同的邊,但是2個端點不在同乙個集合的時候,這個邊就是可以選擇的 include include include include include include using namespace std def...