樹的直徑問題

我先整理一下吧气堕,不整理的話搞不好過兩天我自己都忘了
樹的直徑是指一顆樹上距離最遠的兩個點之間的距離。也叫樹的最長路
樹的直徑是指樹的最長簡單路。
求法: 兩遍BFS :先任選一個起點BFS找到最長路的終點,再從終點進行BFS,則第二次BFS找到的最長路即為樹的直徑触徐;

原理: 設(shè)起點為u,第一次BFS找到的終點v一定是樹的直徑的一個端點

證明:

  1. 如果u 是直徑上的點,則v顯然是直徑的終點(因為如果v不是的話狐赡,則必定存在另一個點w使得u到w的距離更長撞鹉,則于BFS找到了v矛盾)
  2. 如果u不是直徑上的點,則u到v必然于樹的直徑相交(反證),那么交點到v 必然就是直徑的后半段了
    所以v一定是直徑的一個端點,所以從v進行BFS得到的一定是直徑長度
    bfs寫法
LL d[2][maxn];
queue<int > Q;
int bfs(int u,int idx)   //樹的直徑
{
    memset(d[idx],-1,sizeof(d[idx]));
    while(!Q.empty()) Q.pop();
    d[idx][u] = 0;
    Q.push(u);
    while(!Q.empty())
    {
        int u = Q.front();
        Q.pop();
        for(int i = hd2[u];~i;i = e[i].next)
        {
            if(d[idx][e[i].v]==-1)
            {
                d[idx][e[i].v] = d[idx][u] + e[i].w;
                Q.push(e[i].v);
            }
        }
    }
    LL ret = -1;
    int id = 0;
    for(int i=1;i<=cnt;i++)
        if(ret < d[idx][i]) ret = d[idx][id = i];
    return id;
}

dfs寫法

void TreeDia(int u,int pre,int len)
{
    if(len > max_len) st = u,max_len = len;
    for(int i=0;i<g[u].size();i++)
    {
        int v = g[u][i].v;
        if(v==pre)  continue;
        TreeDia(v,u,len+g[u][i].w);
    }
}

還是dfs好寫o((>ω< ))o

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸟雏,一起剝皮案震驚了整個濱河市享郊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌孝鹊,老刑警劉巖炊琉,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異又活,居然都是意外死亡苔咪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門柳骄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來团赏,“玉大人,你說我怎么就攤上這事耐薯√蚯澹” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵可柿,是天一觀的道長鸠踪。 經(jīng)常有香客問我丙者,道長复斥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任械媒,我火速辦了婚禮目锭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纷捞。我一直安慰自己痢虹,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布主儡。 她就那樣靜靜地躺著奖唯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪糜值。 梳的紋絲不亂的頭發(fā)上丰捷,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音寂汇,去河邊找鬼病往。 笑死,一個胖子當著我的面吹牛骄瓣,可吹牛的內(nèi)容都是我干的停巷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼畔勤!你這毒婦竟也來了蕾各?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤庆揪,失蹤者是張志新(化名)和其女友劉穎示损,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嚷硫,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡检访,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了仔掸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脆贵。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖起暮,靈堂內(nèi)的尸體忽然破棺而出卖氨,到底是詐尸還是另有隱情,我是刑警寧澤负懦,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布筒捺,位于F島的核電站,受9級特大地震影響纸厉,放射性物質(zhì)發(fā)生泄漏系吭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一颗品、第九天 我趴在偏房一處隱蔽的房頂上張望肯尺。 院中可真熱鬧,春花似錦躯枢、人聲如沸则吟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氓仲。三九已至,卻和暖如春得糜,著一層夾襖步出監(jiān)牢的瞬間敬扛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工掀亩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留舔哪,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓槽棍,卻偏偏與公主長得像捉蚤,于是被迫代替她去往敵國和親抬驴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 歸去來兮缆巧。 1.1 說明 本篇為《挑戰(zhàn)程序設(shè)計競賽(第2版)》[http://www.ituring.com.cn...
    尤汐Yogy閱讀 14,330評論 0 160
  • 圖的表示 圖的記號是G = (V, E), 可以用兩種數(shù)據(jù)結(jié)構(gòu)表示: 鄰接鏈表和鄰接矩陣; note: 實際應用中...
    陳碼工閱讀 918評論 0 2
  • 課程介紹 先修課:概率統(tǒng)計布持,程序設(shè)計實習,集合論與圖論 后續(xù)課:算法分析與設(shè)計陕悬,編譯原理题暖,操作系統(tǒng),數(shù)據(jù)庫概論捉超,人...
    ShellyWhen閱讀 2,279評論 0 3
  • 沒了云朵胧卤,天變得瓦藍瓦藍; 少了積塵拼岳,鏡子里也看見了親人枝誊。 所謂的藍,所謂的良惜纸, 只是個說法叶撒; 世界,也本應是這個...
    石竹閱讀 264評論 16 4
  • Mindly 如果你也是視覺思考類型,你會愛上 Mindly 的工作方式粪牲,大腦也會在潛移默化中Stronger A...
    腳猾的狐貍閱讀 1,158評論 2 16