NOIP模擬賽 盟主的憂慮

2021-09-27 09:37:03 字數 758 閱讀 7948

顯然任意所求路徑就只經過一條密道,然後呢,畫圖發現就是乙個個環,然後可以用並查集來維護屬於乙個環或者是直接賦值

#includeusing namespace std;

long long read()

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

return num;

}struct ooedge[200005];

struct ooomd[200005];

int head[100005],tot,d[100005],fa[100005],up[100005],in[100005],ans[100005];

void dfs(int now)

}void add(int a,int b,int c)

bool cmp(ooo a,ooo b)

int finds(int x)

int main()

d[1]=1;

dfs(1);

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

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

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

up[i]=i;

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

} for(int i=1;i

return 0;

}

JZOJ A組 盟主的憂慮

江湖由 n 個門派 2 n 100,000,編號從 1 到 n 組成,這些門派之間有 n 1 條小道將他們連線起來,每條道路都以 尺 為單位去計量,武林盟主發現任何兩個門派都能夠直接或者間接通過小道連線。雖然整個江湖是可以互相到達的,但是他擔心有心懷不軌之徒破壞這個武林的安定,破壞小道,於是武林盟主...

nssl1256 C 盟主的憂慮 並查集

n個點的一棵樹,增加了m條密道。對於樹上每條邊 a,b a,b a,b 被破壞後,要求a b a sim b a b經過密道最短。引理 對於每個道路被破壞,最多隻會經過一條邊。證明 對於每個答案,被破壞後,所在層數低的點找到一條可以走出他的子樹的邊就好了,如果要走兩條邊,中間的點要不在子樹中,要不在...

2015 10 31的NOIP模擬賽

這是noip前的最後一周了。第一題是個組合數學的問題,規模不算太大。但第一反應就直接dp了,o n 2 的複雜度,始終想不到優化。本來看著1 3 4 6 10 15一串串數覺得多熟悉的,就是想不起來那是組合數。最後只有80分 第二題算是基本想到了吧,但是忽略了乙個問題 我的想法是每行0的個數要麼是當...