(水)安慰奶牛 藍橋杯

2021-07-10 13:13:46 字數 667 閱讀 8237

分析:最小生成樹的乙個變形。首先,最終必定是一顆樹,先隨便畫一顆樹然後自己模擬走一遍,會發現應該把連線某條邊的2個頂點的權值加入到邊權中,且邊權應該乘2,所以最終以2l+point1+point2為邊權生成最小生成樹即可,至於起點在哪都不影響,只是因為睡前還要安慰一遍睡覺的頂點的奶牛(即起點的奶牛)所以選出最小的ci即可。

直接上**:

#include//安慰奶牛 藍橋  最小生成樹

#includeusing namespace std;

#define max 100000+5

struct edge

e[max];

int n, m, c[max];

int father[max];

int ans, minn = 0x3f3f3f3f;

bool cmp(edge &a,edge &b)

int find(int x)

int main()

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

sort(e + 1, e + m + 1, cmp);

for (int i = 1; i <= m; i++) }

printf("%d\n", ans + minn);

return 0;

}

藍橋杯 安慰奶牛

演算法訓練 安慰奶牛 時間限制 1.0s 記憶體限制 256.0mb 錦囊1使用最小生成樹演算法。錦囊2將每條邊 a,b 的權值lj改變為2lj ca cb,然後使用最小生成樹來計算。問題描述 farmer john變得非常懶,他不想再繼續維護供奶牛之間供通行的道路。道路被用來連線n個牧場,牧場被連...

藍橋杯安慰奶牛

紀念一下,這是我第一次不依靠網上的 自己寫及格的一次題。雖然仍然執行超時,但是真的已經很給我這個 小白信心了 問題描述 farmer john變得非常懶,他不想再繼續維護供奶牛之間供通行的道路。道路被用來連線n個牧場,牧場被連續地編號為1到n。每乙個牧場都是乙個奶牛的家。fj計畫除去p條道路中盡可能...

藍橋杯 演算法訓練 安慰奶牛

演算法訓練 安慰奶牛 時間限制 1.0s 記憶體限制 256.0m 問題描述 farmer john變得非常懶,他不想再繼續維護供奶牛之間供通行的道路。道路被用來連線n個牧場,牧場被連續地編號為1到n。每乙個牧場都是乙個奶牛的家。fj計畫除去p條道路中盡可能多的道路,但是還要保持牧場之間 的連通性。...