CH6201 走廊潑水節

2022-05-20 14:09:58 字數 541 閱讀 7131

題目大意:給定一棵樹,要求增加若干條邊,將其轉化為完全圖,且該完全圖以該樹為唯一的最小生成樹,求增加的邊權最小是多少。

題解:完全圖的問題一般要考慮組合計數。重新跑一遍克魯斯卡爾演算法,每次並查集在合併時進行計數,因為要求最小生成樹唯一,必須保證每條邊都比當前連線兩個聯通塊的邊要至少大 1,因此每次合併對答案的貢獻為 \((w+1)*(size[x]*size[y]-1)\)。

**如下

#include using namespace std;

const int maxn=6010;

struct node

}e[maxn];

int n,f[maxn],size[maxn];

long long ans;

int find(int x)

void read_and_parse()

void solve()

printf("%lld\n",ans);

}int main()

return 0;

}

CH 6201走廊潑水節

描述 簡化版題意 給定一棵n個節點的樹,要求增加若干條邊,把這棵樹擴充為完全圖,並滿足圖的唯一最小生成樹仍然是這棵樹。求增加的邊的權值總和最小是多少。我們一共有n個oier打算參加這個潑水節,同時很湊巧的是正好有n個水龍頭 至於為什麼,我不解釋 n個水龍頭之間正好有n 1條小道,並且每個水龍頭都可以...

CH6201 走廊潑水節 最小生成樹

描述 簡化版題意 給定一棵n個節點的樹,要求增加若干條邊,把這棵樹擴充為完全圖,並滿足圖的唯一最小生成樹仍然是這棵樹。求增加的邊的權值總和最小是多少。我們一共有n個oier打算參加這個潑水節,同時很湊巧的是正好有n個水龍頭 至於為什麼,我不解釋 n個水龍頭之間正好有n 1條小道,並且每個水龍頭都可以...

走廊潑水節

給定一棵n個節點的樹,要求增加若干條邊,把這棵樹擴充為完全圖,並滿足圖的唯一最小生成樹仍然是這棵樹。求增加的邊的權值總和最小是多少。輸入格式 第一行包含整數t,表示共有t組測試資料。對於每組測試資料,第一行包含整數n。接下來n 1行,每行三個整數x,y,z,表示x節點與y節點之間存在一條邊,長度為z...