week11求樹的直徑

week11:求樹的直徑囤采;
隨機(jī)選點(diǎn),搜索到距離該點(diǎn)最遠(yuǎn)的一點(diǎn)惩淳,然后從該點(diǎn)出發(fā)獲得最遠(yuǎn)點(diǎn)蕉毯,兩點(diǎn)間距即為直徑;正常思路
然后看了眼大佬的代碼思犁。real服代虾。空間換時(shí)間激蹲。
每當(dāng)加入一條邊:就當(dāng)是兩條邊棉磨;
to數(shù)組存邊號(hào)對(duì)應(yīng)的終點(diǎn),hd數(shù)組存起點(diǎn)對(duì)應(yīng)的邊號(hào)学辱,nx數(shù)組存該起點(diǎn)對(duì)應(yīng)的另一條邊乘瓤;
核心代碼非常詭異:

int cl(int u,int p){
    int a=0,b=0,t;
    for(int i=hd[u];i;i=nx[i])//u的每一個(gè)方向
        if(to[i]!=p)//如果沒有走回起點(diǎn)
        if((t=cl(to[i],u)+1)>b)//迭代取得u經(jīng)過i邊的最遠(yuǎn)。(即u為折點(diǎn))
        if((b=t)>a)
        t=a,a=b,b=t;//之前t>b>a;現(xiàn)在a>b>t;
    if((b+=a)>ans)ans=b;//該點(diǎn)一邊最遠(yuǎn)a一邊最遠(yuǎn)b策泣;
    return a;//經(jīng)過u的最遠(yuǎn)衙傀;
}

這個(gè)代碼倒是嚴(yán)格按提示來的,a保留了u開始最長(zhǎng)萨咕,b保留了u開始次長(zhǎng)统抬;返回a+b;就是邏輯很難順下來啊。

看了下poj1849的報(bào)告
1849的題是這樣:n個(gè)點(diǎn)危队,n-1條有權(quán)邊,從S點(diǎn)出發(fā)的兩輛車 遍歷完所有節(jié)點(diǎn)走過的路最短聪建。
由題可知不成環(huán)。那么就只有兩種情況:
1.起點(diǎn)在直徑上交掏,那么直接求樹的直徑就好
2.起點(diǎn)不在直徑上:最長(zhǎng)鏈只被遍歷一遍妆偏,其余都是兩遍
顯然1是2的特殊情形。
用bfs吧 因?yàn)椋洌妫蠼?jīng)常用盅弛。
所以要S干嘛钱骂。叔锐。。覺得我隨機(jī)找一點(diǎn)開始太浪費(fèi)時(shí)間见秽,從起點(diǎn)開始愉烙?
用數(shù)組模擬搞過了。
不過bfs的正規(guī)套路是queue啊解取。
步步為營(yíng) 一視同仁 無解方止

queue<Point> q;
q.push(start);
Point next;
while(!q.empty())//隊(duì)列不為空繼續(xù)擴(kuò)展
{
    Point tmp=q.front()步责;
    q.pop();
    for(int i = 0; i < 8; ++i)
    {
        next.row = tmp.row + directR[i];
        next.col = tmp..col + directC[i];
        if(inmap(next) && !visited[next.row][next.col])//inmap判斷是否在地圖內(nèi)
        {
            next.moves = tmp.moves + 1;
            if(next.row == end.row && next.col == end.col)//如果是終點(diǎn)
                return next.moves;
            q.push(next);//入列
            visited[next.row][next.col] = true;//標(biāo)志為走過
        }
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市禀苦,隨后出現(xiàn)的幾起案子蔓肯,更是在濱河造成了極大的恐慌,老刑警劉巖振乏,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔗包,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡慧邮,警方通過查閱死者的電腦和手機(jī)调限,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來误澳,“玉大人耻矮,你說我怎么就攤上這事∫湮剑” “怎么了裆装?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)陪毡。 經(jīng)常有香客問我米母,道長(zhǎng),這世上最難降的妖魔是什么毡琉? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任铁瞒,我火速辦了婚禮,結(jié)果婚禮上桅滋,老公的妹妹穿的比我還像新娘慧耍。我一直安慰自己,他們只是感情好丐谋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布芍碧。 她就那樣靜靜地躺著,像睡著了一般号俐。 火紅的嫁衣襯著肌膚如雪泌豆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天吏饿,我揣著相機(jī)與錄音踪危,去河邊找鬼蔬浙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛贞远,可吹牛的內(nèi)容都是我干的畴博。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蓝仲,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼俱病!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起袱结,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤亮隙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后擎勘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咱揍,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年棚饵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掩完。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡噪漾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出且蓬,到底是詐尸還是另有隱情欣硼,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布恶阴,位于F島的核電站诈胜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏冯事。R本人自食惡果不足惜焦匈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昵仅。 院中可真熱鬧缓熟,春花似錦、人聲如沸摔笤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吕世。三九已至彰触,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間命辖,已是汗流浹背况毅。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工晚伙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人俭茧。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓咆疗,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親母债。 傳聞我的和親對(duì)象是個(gè)殘疾皇子午磁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

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

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,744評(píng)論 0 33
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,127評(píng)論 25 707
  • 簡(jiǎn)介 搜索迷宮(BFS+隊(duì)列) 最短路Dijkstra+鄰接矩陣Dijkstra+鏈?zhǔn)角跋蛐?優(yōu)先隊(duì)列Bellma...
    染微言閱讀 397評(píng)論 0 1
  • 我的愛人毡们,柔柔的 似江南的一朵蓮 愛人的心迅皇,我的心 隔著山海,星空衙熔,和人世 落英登颓,雲(yún)霞,果實(shí) 愛人的心红氯,我的心 這...
    頑石GoGoGo閱讀 150評(píng)論 0 1
  • 張可亮簡(jiǎn)介: 現(xiàn)任東北證券股份有限公司股轉(zhuǎn)業(yè)務(wù)總部副總經(jīng)理框咙,公司主辦券商推薦業(yè)務(wù)內(nèi)核委員,山東省社绷「剩基金理事會(huì)評(píng)審...
    授米閱讀 587評(píng)論 0 0