UOJ 67 新年的毒瘤 Tarjan

2022-03-20 04:08:19 字數 833 閱讀 8855

uoj

一棵\(n\)個節點的樹顯然有\(n-1\)條邊,在本題中意味著刪去乙個點之後還剩下\(n-2\)條邊。那麼找到所有度數為\(m-(n-2)\)的點就好了。但是因為是一棵樹,所以聯通,所以割點不是答案。

#include#includeusing namespace std;

#define ll long long

#define max 100100

inline int read()

struct linee[max<<1];

int h[max],cnt=1,dg[max];

inline void add(int u,int v);h[u]=cnt++;dg[u]++;}

int n,m,dfn[max],low[max],tim,s[max],top,rt,son;

bool cut[max];

void tarjan(int u,int ff)

} else low[u]=min(low[u],dfn[v]);

} if(u==rt&&son>1)cut[u]=true;

}int main()

for(int i=1;i<=n;++i)if(!dfn[i])tarjan(rt=i,son=0);

for(int i=1;i<=n;++i)if(!cut[i]&&(m-dg[i]==n-2))s[++top]=i;

printf("%d\n",top);

for(int i=1;i<=top;++i)printf("%d ",s[i]);

puts("");return 0;

}

UOJ67 新年的毒瘤

作者部落格 解題報告 考慮能變成一棵樹,肯定說明至少選擇的點不是割點,其次題解裡面說了這個點的度數有特定的要求.那麼就變成簡單題了.只需找出不是割點且度數 m n 2 的點即可。注意有一些奇怪的邊界條件.不要想當然的以為m n 1答案是0.it is made by ljh2000 include ...

UOJ67 新年的毒瘤 Tarjan,割點

online judge uoj 67 label tarjan,割點,細節 辭舊迎新之際,喜羊羊正在打理羊村的綠化帶,然後他發現了一棵長著毒瘤的樹。這個長著毒瘤的樹可以用 n 個結點 m 條無向邊的無向圖表示。這個圖中有一些結點被稱作是毒瘤結點,即刪掉這個結點和與之相鄰的邊之後,這個圖會變為一棵樹...

uoj 176 新年的繁榮

給出乙個完全圖,邊權為兩點權值的and,求最大生成樹。這題用最小生成樹的boruvka演算法。大概就是每次找到每乙個聯通塊權值最大的邊,將這些聯通塊合併,直到只剩乙個聯通塊。因為每次聯通塊的個數至少減半,所以只會做log次操作。那麼這題相當於每個點有不同顏色,要找到每個點的異色點中最大的and值。扔...