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
***/
相關文章
- 樹的相關術語
- 樹的定義及相關術語
- 深度學習相關理論深度學習
- 深度學習相關論文深度學習
- B樹(B-tree, 平衡的多路查詢樹)的相關知識
- 說說你對樹的理解?相關的操作有哪些?
- 平衡車相關理論基礎
- 樹莓派擴充套件板 sense HAT 的相關介面樹莓派套件
- 二叉樹的深度二叉樹
- 深度瞭解自動泊車技術及相關資料標註方法 | 自動駕駛自動駕駛
- 樹的DFS序列,時間戳,樹的深度,重心時間戳
- 二叉樹的最大深度和最小深度二叉樹
- (樹_)求最小深度
- Day14 二叉樹Part2 遞迴的應用(二叉樹相關)二叉樹遞迴
- 《數字經濟產業鏈》及其相關公司 —— 深度梳理產業
- 2019 人工智慧領域AI相關比賽資訊人工智慧AI
- 二叉樹的最大/最小深度二叉樹
- 二叉樹的最大深度20201231二叉樹
- Day15 二叉樹Part2 初見回溯(二叉樹相關)二叉樹
- 二叉樹深度二叉樹
- 二叉樹---深度二叉樹
- 車輛資訊查詢 - 高效快捷地獲取車輛相關資訊的利器
- 二叉樹的深度、寬度遍歷及平衡樹二叉樹
- Word的相關操作
- Cookie的相關操作Cookie
- vim的相關指令
- 111. 二叉樹的最小深度(***)二叉樹
- 111. 二叉樹的最小深度二叉樹
- Leetcode 559. N叉樹的最大深度LeetCode
- 104. 二叉樹的最大深度二叉樹
- JZ-038-二叉樹的深度二叉樹
- 二叉樹的最小深度問題二叉樹
- Python二叉樹的三種深度Python二叉樹
- leetcode 111 二叉樹的最小深度LeetCode二叉樹
- 騰訊AI Lab深度解讀文字生成技術相關論文AI
- 基於深度神經網路的人臉識別相關問題神經網路
- 新能源汽車智慧充電樁管理方案:充電停車APP/小程式的相關資訊APP
- 二叉樹的子結構、深度以及重建二叉樹二叉樹
- 關於 GIN 的路由樹路由