luogu P1340 獸徑管理

2021-08-10 02:21:45 字數 640 閱讀 3550

這是乙個最小生成樹,不過唯一的不同是這棵最小生成樹是動態加邊的,所以由此衍生了各種奇怪做法。

先說我的做法,我的做法很暴力,就是僅排序一遍,然後同時執行m個kruskal,總的時間複雜度應該是m^2,卡時間過了。

總之很裸很暴力。

然後orz一下大神的做法:

1 插入排序+kruskal

2 逆序kruskal

3 神奇的找環棄max法

都好神orz

上**:

#include#include#include#include#include#includeusing namespace std;

int fa[6005][201];

int ans[6005];

int total[6005];

struct edge;

edge e[10000+666];

int find(int day,int a)

inline int ra()

while(ch>='0'&&ch<='9')

return x*flag;

}bool cmp(const edge &x,const edge &y)

{ return x.dis

luogu P1340 獸徑管理 WA

約翰農場的牛群希望能夠在 n 個 1 n 200 草地之間任意移動。草地的編號由 1到 n。草地之間有樹林隔開。牛群希望能夠選擇草地間的路徑,使牛群能夠從任一 片草地移動到任一片其它草地。牛群可在路徑上雙向通行。牛群並不能創造路徑,但是他們會保有及利用已經發現的野獸所走出來的路徑 以 下簡稱獸徑 每...

P1340 獸徑管理

miku 這題目很water 只要按照題意模擬就行了,資料似乎沒有重邊,那麼對於加入每一條邊的時候,如果兩端點沒聯通,那麼連上,反之 先連上,形成乙個環,去點環上最大的邊 資料範圍不大對 include include include include includeusing namespace s...

P1340 獸徑管理

約翰農場的牛群希望能夠在 n 個 1 n 200 草地之間任意移動。草地的編號由 1到 n。草地之間有樹林隔開。牛群希望能夠選擇草地間的路徑,使牛群能夠從任一 片草地移動到任一片其它草地。牛群可在路徑上雙向通行。牛群並不能創造路徑,但是他們會保有及利用已經發現的野獸所走出來的路徑 以 下簡稱獸徑 每...