hihocoder1224 賽車(樹的深度相關)
題目連線:傳送門
題意:
給你一棵樹,然後加一條邊,加的這條邊不能使樹成環,求加邊後從根節點出發的最長的路徑。
分析:
如果可以加邊的話那麼這兩個鏈一定是某個節點的最長鏈與次長鏈,然後一邊dfs處理出所有的節點的深度,然後再一遍dfs求出所有點的最長鏈的長度與次長鏈的長度,然後列舉節點就可以了。
程式碼如下:
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <vector>
using namespace std;
const int maxn = 1e5+10;
vector<int > vc[maxn];
int dept[maxn];
int mmax;
void init(){
for(int i=0;i<maxn;i++){
vc[i].clear();
}
mmax=0;
}
void dfs(int u,int dep){
dept[u]=++dep;
mmax = max(dep,mmax);
for(int i=0;i<vc[u].size();i++){
int v=vc[u][i];
dfs(v,dep);
}
}
int m[maxn][2];
int slove(int u){
if(m[u][0]) return m[u][0];
int m1=dept[u],m2=0;
for(int i=0;i<vc[u].size();i++){
int tmp = slove(vc[u][i]);
if(tmp<=m1&&tmp>m2&&m1!=dept[u]) m2=tmp;
if(tmp>m1){
if(m1!=dept[u])
m2=m1;
m1=tmp;
}
}
m[u][0]=m1;
m[u][1]=m2;
return m1;
}
int main()
{
int n;
while(~scanf("%d",&n)){
init();
for(int i=0;i<n-1;i++){
int u,v;
scanf("%d%d",&u,&v);
vc[u].push_back(v);
}
memset(m,0,sizeof(m));
dfs(1,0);
slove(1);
int ans = 0;
for(int i=1;i<=n;i++){
if(m[i][1])
ans=max(ans,m[i][0]-1+m[i][1]-dept[i]);
}
if(!ans) printf("%d\n",mmax-1);
else printf("%d\n",ans);
}
return 0;
}
/***
10
1 2
2 3
3 7
3 8
8 10
2 4
4 5
5 6
6 9
***/
相關文章
- 深度學習相關論文深度學習
- 深度學習相關網址深度學習
- 深度學習相關理論深度學習
- 火車發車時間api 火車相關內容查詢API
- 二叉樹相關題目二叉樹
- 機器學習,深度學習相關介紹機器學習深度學習
- B樹(B-tree, 平衡的多路查詢樹)的相關知識
- 深度瞭解自動泊車技術及相關資料標註方法 | 自動駕駛自動駕駛
- 決策樹相關知識小結
- 說說你對樹的理解?相關的操作有哪些?
- 車輛資訊查詢 - 高效快捷地獲取車輛相關資訊的利器
- Android技能樹 — 多程式相關小結Android
- 關於車--標緻206相關問題解析及選車建議(zt)
- 樹莓派擴充套件板 sense HAT 的相關介面樹莓派套件
- 二叉樹的深度二叉樹
- 資料結構:二叉查詢樹的相關操作資料結構
- 二叉樹的最大深度和最小深度二叉樹
- 淺談競速(賽車)遊戲的賽道取景設計遊戲
- 資料科學相關文章合集(玉樹芝蘭)資料科學
- Macos賽車競速遊戲:art of rally拉力賽車 for Mac 最新中文版Mac遊戲
- 二叉樹深度二叉樹
- 二叉樹---深度二叉樹
- Day14 二叉樹Part2 遞迴的應用(二叉樹相關)二叉樹遞迴
- 二叉樹的深度、寬度遍歷及平衡樹二叉樹
- 騰訊AI Lab深度解讀文字生成技術相關論文AI
- 【面試】基於二叉樹層次遍歷相關問題的求解面試二叉樹
- JZ-038-二叉樹的深度二叉樹
- 二叉樹的最大/最小深度二叉樹
- Day15 二叉樹Part2 初見回溯(二叉樹相關)二叉樹
- 2019 人工智慧領域AI相關比賽資訊人工智慧AI
- PostgreSQL空間獨立事件相關性分析二-人車擬合SQL事件
- Macos賽車競速遊戲:art of rally拉力賽車 for Mac 1.5.0中文版 推薦Mac遊戲
- Cookie的相關操作Cookie
- vim的相關指令
- 反射相關的API反射API
- vue指令相關的Vue
- JS的相關概念JS
- DATE 相關的FunctionFunction