• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Why so serious? --[NKU]schindlerlee

            2010年02月28日星期日.sgu149 tree dp

            2010年02月28日星期日.sgu149
            sgu149:tree dp
            這個(gè)題想了好久,第一遍代碼寫的太亂了,然后就重新寫了一遍,還好過了。。

            思路就是每個(gè)點(diǎn)的最長距離有兩個(gè)來源,一個(gè)是子節(jié)點(diǎn),一個(gè)是父節(jié)點(diǎn)。
            字節(jié)點(diǎn)的即是深度,這個(gè)好求。
            如果是來自父節(jié)點(diǎn),那么假定父節(jié)點(diǎn)的最長距離已經(jīng)獲得,
            如果這個(gè)最長距離不是來自當(dāng)前節(jié)點(diǎn),就可一直接加上父節(jié)點(diǎn)到這個(gè)節(jié)點(diǎn)的邊長。
            如果這個(gè)最長距離恰好來自這個(gè)節(jié)點(diǎn),那么可以使用父節(jié)點(diǎn)不來自這個(gè)節(jié)點(diǎn)的最長路來做同樣的事情。

            ?1?
            ?2?#define?pb(x)?push_back(x)
            ?3?const?int?N?=?10100;
            ?4?vector<int>?g[N];
            ?5?int?deep[N],n,far1[N],far2[N],branch[N],vis[N];
            ?6?int?out[N];
            ?7?
            ?8?void?dfs1(int?u)
            ?9?{
            10???vis[u]?=?true;
            11???int?res?=?0,idx?=?0;
            12???for?(int?i?=?0;i?<?g[u].size();i?+=2?)?{
            13???????int?v?=?g[u][i];
            14???????int?w?=?g[u][i+1];
            15???????if?(!vis[v])?{
            16???????????dfs1(v);
            17???????????if?(res?<?deep[v]?+?w)?{
            18???????????????res?=?deep[v]?+?w;
            19???????????????idx?=?v;
            20???????????}
            21???????}
            22???}
            23???deep[u]?=?res;
            24?}
            25?
            26?void?dfs2(int?u,int?cost)?//?u?is?current?//?cost?from?parent
            27?{
            28???vis[u]?=?true;
            29???branch[u]?=?0;
            30???far1[u]?=?cost;
            31???far2[u]?=?0;
            32?
            33???int?i,sz?=?g[u].size();
            34???for?(i?=?0;i?<?sz;i?+=?2)?{
            35???????int?v?=?g[u][i];
            36???????int?w?=?g[u][i+1];
            37???????if?(vis[v])?{?continue;?}?//!
            38???????if?(far1[u]?<?deep[v]?+?w?)?{
            39???????????far2[u]?=?far1[u];
            40???????????far1[u]?=?deep[v]?+?w?;
            41???????????branch[u]?=?v;
            42???????}else?if?(far2[u]?<?deep[v]?+?w?)?{
            43???????????far2[u]?=?deep[v]?+?w;
            44???????}
            45???}
            46???//http://www.shnenglu.com/schindlerlee
            47???for?(i?=?0;i?<?sz;i?+=?2)?{
            48???????int?v?=?g[u][i];
            49???????int?w?=?g[u][i+1];
            50???????if?(vis[v])?{?continue;?}
            51???????if?(v?!=?branch[u])?{
            52???????????dfs2(v,far1[u]?+?w);
            53???????}else?{
            54???????????dfs2(v,far2[u]?+?w);
            55???????}
            56???}
            57?}
            58?
            59?int?main()
            60?{
            61???int?i,j,k,a,b;
            62???scanf("%d",&n);
            63???for?(i?=?2;i?<=?n;i++)?{
            64???????scanf("%d%d",&a,&b);
            65???????g[i].pb(a),g[i].pb(b);
            66???????g[a].pb(i),g[a].pb(b);
            67???}
            68???dfs1(1);
            69???memset(vis,0,sizeof(vis));
            70???dfs2(1,0);
            71???for?(?i?=?1;?i?<=?n;?i++)?{
            72???????printf("%d\n",far1[i]);
            73???}
            74?
            75???return?0;
            76?}
            77?

            posted on 2010-02-28 21:02 schindlerlee 閱讀(1333) 評論(0)  編輯 收藏 引用 所屬分類: 解題報(bào)告

            久久婷婷国产麻豆91天堂| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 国产精品丝袜久久久久久不卡| 99久久精品免费国产大片| 亚洲av成人无码久久精品| 一级做a爰片久久毛片免费陪| 日韩一区二区久久久久久| 色欲久久久天天天综合网| 无码AV波多野结衣久久| 综合人妻久久一区二区精品 | 精品久久久久久久久久中文字幕 | 99久久免费国产精品热| 亚洲国产精品久久久天堂| 欧美黑人又粗又大久久久| 精品国产一区二区三区久久久狼| 久久久无码一区二区三区| 久久精品国产清自在天天线| 久久天天躁夜夜躁狠狠| 日韩精品久久无码人妻中文字幕| 97久久超碰国产精品2021| 久久久国产精品亚洲一区| 国内精品久久久久影院一蜜桃| 国产精品99久久久久久董美香| 狠狠色综合久久久久尤物| 色综合久久综合网观看| 麻豆久久| 国产V综合V亚洲欧美久久| 青草影院天堂男人久久| 久久久精品国产亚洲成人满18免费网站 | 综合久久一区二区三区| 97久久国产综合精品女不卡| 亚洲精品无码久久久久久| 国内精品伊人久久久久| 精品久久人人妻人人做精品| 国产99久久久国产精品小说| 久久成人国产精品| 亚洲国产成人久久笫一页| 久久久久久亚洲Av无码精品专口 | 亚洲成人精品久久| 亚洲国产成人精品91久久久| 久久强奷乱码老熟女网站|