跟 n 個點 m 條邊,問你分別刪除乙個點後對應這 n 個點還有幾個聯通塊。
先求出來一共有多少個連通塊,然後計算每個點對應到少個割邊,之後連通塊的個數加上該點的割邊的數量就可以了。有個坑點就是,每次第乙個遍歷的點,他的割邊的個數會多一,需要減一下;
#include
using namespace std;
const
int mx=
500100
;int f[mx]
;int dfn[mx]
,low[mx]
;int cnt=0;
vector<
int>ve[mx]
;void
tarjan
(int x,
int fa)
tarjan
(u,x);if
(dfn[x]
<=low[u]
) low[x]
=min
(low[x]
,low[u]);
}}if(fa==
0) f[x]--;
}int
main()
int ans=0;
for(
int i=
1;i<=n;i++)}
for(
int i=
1;i<=n;i++
)return0;
}
牛客網 樹的高度(小公尺)
現在有一棵合法的二叉樹,樹的節點都是用數字表示,現在給定這棵樹上所有的父子關係,求這棵樹的高度 輸入的第一行表示節點的個數n 1 n 1000,節點的編號為0到n 1 組成,下面是n 1行,每行有兩個整數,第乙個數表示父節點的編號,第二個數表示子節點的編號輸出樹的高度,為乙個整數示例1 5 0 10...
牛客 小公尺校招 最大新整數 單調棧
題目描述 有一十進位制正整數,移除其中的 k 個數,使剩下的數字是所有可能中最大的。假設 字串的長度一定大於等於 k 字串不會以 0 開頭 輸入描述 一行由正整數組成的數字字串,和乙個正整數 k,兩個資料用空格隔開,如 1432219 3。字串長度不超過2000,k 2000。輸出描述 移除 k 位...
牛客 獎學金
某小學最近得到了一筆贊助,打算拿出其中一部分為學習成績優秀的前5名學生發獎學金。期末,每個學生都有3門課的成績 語文 數學 英語。先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學 排在前面,這樣,每個學生的排序是唯一確定的。...