锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品无码久久久久久,久久久精品人妻一区二区三区蜜桃 ,国产精品久久新婚兰兰http://m.shnenglu.com/csu-yx-2013/category/18790.htmlAlgorithm Study And So Onzh-cnSat, 14 Sep 2013 13:30:33 GMTSat, 14 Sep 2013 13:30:33 GMT60poj 3255 Roadblocks 嬈$煭璺?/title><link>http://m.shnenglu.com/csu-yx-2013/archive/2012/09/03/189318.html</link><dc:creator>yx</dc:creator><author>yx</author><pubDate>Mon, 03 Sep 2012 14:39:00 GMT</pubDate><guid>http://m.shnenglu.com/csu-yx-2013/archive/2012/09/03/189318.html</guid><wfw:comment>http://m.shnenglu.com/csu-yx-2013/comments/189318.html</wfw:comment><comments>http://m.shnenglu.com/csu-yx-2013/archive/2012/09/03/189318.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/csu-yx-2013/comments/commentRss/189318.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/csu-yx-2013/services/trackbacks/189318.html</trackback:ping><description><![CDATA[   榪欎釜棰樻槸姹傛鐭礬銆傛湁涓笉閿欑殑瑙f硶錛屾槸鏍規(guī)嵁涓涓粨璁猴紝鏇挎崲璋冩渶鐭礬閲岄潰鐨勪竴鏉¤竟鑲畾鑳藉緱鍒版鐭礬銆?br />   閭d箞錛屽彧瑕佹灇涓炬墍鏈夎竟灝卞彲浠ヤ簡(jiǎn)銆傛瘮濡傦紝鍋囪寮濮嬬偣涓簊錛岀洰鏍囩偣鏄痙錛岃鏈鐭礬涓篸is(s,d)銆傚浜庤竟(u,v)錛?br />dis(s, u) + w(u, v) + dis(v, d) 澶т簬dis(s, d)錛屽垯璇ヨ礬寰勫氨鍙兘鏄鐭礬銆傛眰鍑烘渶灝忕殑澶т簬dis(s,d)鐨勫煎氨鍙互浜?jiǎn)銆?br />   鏂瑰紡鏄粠s寮濮嬪拰浠巇寮濮嬭繘琛?嬈″崟婧愬緇堢偣鏈鐭礬寰勭畻娉曘傜劧鍚庢灇涓捐竟鍗沖彲銆?br />   <br />   璇ョ畻娉曞彲浠ヨ繖鏍風(fēng)悊瑙c傚洜涓烘浛鎹㈡渶鐭礬寰勯噷闈㈢殑杈癸紝璺緞鐨勯暱搴﹀彧浼?xì)鍙樺ぇ鎴栬呬笉鍙樸傚鏋滃瓨鍦ㄨ鏇寸煭璺緞鍙樺皬鐨勮竟錛?br />榪欐湰韜氨涓庢渶鐭礬寰勬槸鐭涚浘鐨勩傛墍浠ユ浛鎹?鏉℃垨鑰呮洿澶氱殑杈瑰彧浼?xì)璁╄矾寰勫彉寰楁洿澶с傚洜姝わ紝鍙渶鑰冭檻鏇挎崲涓鏉¤竟鐨勬儏鍐?br />鍗沖彲銆?br /><br />   浠g爜濡備笅錛?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include <stdio.h><br />#include <<span style="color: #0000FF; ">string</span>.h><br />#include <algorithm><br />#include <queue><br />#include <vector><br /><span style="color: #0000FF; ">using</span> <span style="color: #0000FF; ">namespace</span> std;<br /><br /><span style="color: #0000FF; ">const</span> <span style="color: #0000FF; ">int</span> MAX_N = 5000 + 10;<br /><span style="color: #0000FF; ">struct</span> Edge<br />{<br />    <span style="color: #0000FF; ">int</span> nE;<br />    <span style="color: #0000FF; ">int</span> nDis;<br />    Edge(<span style="color: #0000FF; ">int</span> e, <span style="color: #0000FF; ">int</span> d):nE(e), nDis(d) {}<br />};<br />vector<Edge> graph[MAX_N];<br /><span style="color: #0000FF; ">bool</span> bVisit[MAX_N];<br /><span style="color: #0000FF; ">int</span> nSDis[MAX_N];<br /><span style="color: #0000FF; ">int</span> nEDis[MAX_N];<br /><br /><span style="color: #0000FF; ">struct</span> Node<br />{<br />    <span style="color: #0000FF; ">int</span> nN;<br />    <span style="color: #0000FF; ">int</span> nDis;<br /><br />    <span style="color: #0000FF; ">bool</span> <span style="color: #0000FF; ">operator</span> < (<span style="color: #0000FF; ">const</span> Node& node) <span style="color: #0000FF; ">const</span><br />    {<br />        <span style="color: #0000FF; ">return</span> nDis > node.nDis;<br />    }<br />};<br /><br /><span style="color: #0000FF; ">int</span> ShortestPath(<span style="color: #0000FF; ">int</span> nS, <span style="color: #0000FF; ">int</span> nE, <span style="color: #0000FF; ">int</span>* nDis, <span style="color: #0000FF; ">int</span> nN)<br />{<br />    priority_queue<Node> pq;<br />    memset(bVisit, <span style="color: #0000FF; ">false</span>, <span style="color: #0000FF; ">sizeof</span>(bVisit));<br />    <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> i = 1; i <= nN; i++)<br />    {<br />        nDis[i] = 0x7fffffff;<br />    }<br />    nDis[nS] = 0;<br />    Node head;<br />    head.nDis = 0, head.nN = nS;<br />    pq.push(head);<br /><br />    <span style="color: #0000FF; ">while</span> (pq.empty() == <span style="color: #0000FF; ">false</span>)<br />    {<br />        Node head = pq.top();<br />        pq.pop();<br />        <span style="color: #0000FF; ">int</span> nU = head.nN;<br />        <span style="color: #0000FF; ">if</span> (bVisit[nU]) <span style="color: #0000FF; ">continue</span>;<br />        bVisit[nU] = <span style="color: #0000FF; ">true</span>;<br /><br />        <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> i = 0; i < graph[nU].size(); ++i)<br />        {<br />            <span style="color: #0000FF; ">int</span> nV = graph[nU][i].nE;<br />            <span style="color: #0000FF; ">int</span> nLen = head.nDis + graph[nU][i].nDis;<br />            <span style="color: #0000FF; ">if</span> (nLen < nDis[nV])<br />            {<br />                nDis[nV] = nLen;<br />                Node node;<br />                node.nDis = nLen;<br />                node.nN = nV;<br />                pq.push(node);<br />            }<br />        }<br />    }<br />    <br />    <span style="color: #0000FF; ">return</span> nDis[nE];<br />}<br /><br /><span style="color: #0000FF; ">int</span> Second(<span style="color: #0000FF; ">int</span> nS, <span style="color: #0000FF; ">int</span> nE, <span style="color: #0000FF; ">int</span> nN)<br />{<br />    <span style="color: #0000FF; ">int</span> nShortest = ShortestPath(nS, nE, nSDis, nN);<br />    ShortestPath(nE, nS, nEDis, nN);<br /><br />    <span style="color: #0000FF; ">int</span> nAns = 0x7fffffff;<br /><br />    <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> i = 1; i <= nN; ++i)<br />    {<br />        <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> j = 0; j < graph[i].size(); ++j)<br />        {<br />            <span style="color: #0000FF; ">int</span> nU = i;<br />            <span style="color: #0000FF; ">int</span> nV = graph[i][j].nE;<br />            <span style="color: #0000FF; ">int</span> nLen = nSDis[i] + graph[i][j].nDis + nEDis[nV];<br />            <span style="color: #0000FF; ">if</span> (nLen != nShortest)<br />            {<br />                nAns = min(nAns, nLen);<br />            }<br />        }<br />    }<br /><br />    <span style="color: #0000FF; ">return</span> nAns;<br />}<br /><br /><span style="color: #0000FF; ">int</span> main()<br />{<br />    <span style="color: #0000FF; ">int</span> nN, nR;<br />    <span style="color: #0000FF; ">int</span> nA, nB, nD;<br /><br />    <span style="color: #0000FF; ">while</span> (scanf("%d%d", &nN, &nR) == 2)<br />    {<br />        <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> i = 1; i <= nN; ++i)<br />        {<br />            graph[i].clear();<br />        }<br /><br />        <span style="color: #0000FF; ">while</span> (nR--)<br />        {<br />            scanf("%d%d%d", &nA, &nB, &nD);<br />            graph[nA].push_back(Edge(nB, nD));<br />            graph[nB].push_back(Edge(nA, nD));<br />        }<br />        printf("%d\n", Second(1, nN, nN));<br />    }<br /><br />    <span style="color: #0000FF; ">return</span> 0;<br />}</div><img src ="http://m.shnenglu.com/csu-yx-2013/aggbug/189318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/csu-yx-2013/" target="_blank">yx</a> 2012-09-03 22:39 <a href="http://m.shnenglu.com/csu-yx-2013/archive/2012/09/03/189318.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>CSU OJ - 1219: 寤洪鍫?(鎵鏈夌粨鐐歸棿鐨勬渶鐭礬寰?http://m.shnenglu.com/csu-yx-2013/archive/2011/12/04/161448.htmlyxyxSun, 04 Dec 2011 14:20:00 GMThttp://m.shnenglu.com/csu-yx-2013/archive/2011/12/04/161448.htmlhttp://m.shnenglu.com/csu-yx-2013/comments/161448.htmlhttp://m.shnenglu.com/csu-yx-2013/archive/2011/12/04/161448.html#Feedback0http://m.shnenglu.com/csu-yx-2013/comments/commentRss/161448.htmlhttp://m.shnenglu.com/csu-yx-2013/services/trackbacks/161448.htmlhttp://acm.csu.edu.cn/OnlineJudge/problem.php?id=1219

榪欎釜棰?/a>灝辨槸姹傚嚭鎵鏈夌粨鐐圭殑璺濈涔嬪悗,鍐嶆壘鍑烘煇涓粨鐐?璇ョ粨鐐圭鍏跺畠緇撶偣鐨勬渶澶ц窛紱繪槸鎵鏈夌粨鐐逛腑鏄渶灝忕殑...
瑙f硶1:娣辨悳鍑烘墍鏈夌粨鐐歸棿鐨勮窛紱?浣嗘槸浼?xì)瓒呮?鍗充嬌娣辨悳鐨勮繃紼嬩嬌鐢ㄤ腑璁板繂鍖栨悳绱?灝辨槸鐢?緇存暟緇勪繚瀛樺凡緇忔悳鍑虹殑絳旀,濡傛灉鍚庨潰鐨勬悳绱㈤渶瑕佺敤鍒扮洿鎺ヤ嬌鐢ㄥ嵆鍙?...
瑙f硶2:Floyd綆楁硶,3閲嶅驚鐜洿鎺ユ壘鍑烘墍鏈夌粨鐐逛箣闂寸殑鏈鐭窛紱?br />瑙f硶3:瀵規(guī)瘡涓涓粨鐐瑰簲鐢ㄤ竴嬈¤開鏉版柉鐗規(guī)媺綆楁硶,鎵懼嚭鎵鏈夌粨鐐逛笌鍏跺畠緇撶偣闂寸殑鏈鐭窛紱?..

瑙f硶2:
#include <stdio.h>
#include <string.h>
#define MAX  (100 + 10)
#define INF (1000000 + 10)
int nN, nM;
int nDis[MAX][MAX];
void SearchAll()
{
    for (int k = 0; k < nN; ++k)
    {
        for (int i = 0; i < nN; ++i)
        {   
            for (int j = 0; j < nN; ++j)
            {
                if (nDis[i][k] + nDis[k][j] < nDis[i][j])
                {
                    nDis[i][j] = nDis[j][i] = nDis[i][k] + nDis[k][j];
                }
            }
        }
    }
}
int main()
{
    while (scanf("%d%d", &nN, &nM) == 2)
    {
        for (int i = 0; i < nN; ++i)
        {
            for (int j = 0; j < nN; ++j)
            {
                if (i == j)
                {
                    nDis[i][j] = 0;
                }
                else
                {
                    nDis[i][j] = INF;
                }
            }
        }
        while (nM--)
        {
            int nX, nY, nK;
            scanf("%d%d%d", &nX, &nY, &nK);
            nDis[nX][nY] = nDis[nY][nX] = nK;
        }
        SearchAll();
        bool bOk = false;
        int nMin = 1 << 30;
        
        for (int i = 0; i < nN; ++i)
        {
            int nTemp = 0;
            int j = 0;
            for ( ; j < nN; ++j)
            {
                if (i == j) continue;
                if (nDis[i][j] == INF)
                {
                    break;
                }
                else
                {
                    if (nDis[i][j] > nTemp)
                    {
                        nTemp = nDis[i][j];
                    }
                }
            }
            if (j == nN)
            {
                bOk = true;
                if (nTemp < nMin)
                {
                    nMin = nTemp;
                }
            }
        }
        
        if (bOk)
        {
            printf("%d\n", nMin);
        }
        else
        {
            printf("Can not\n");
        }
    }
    return 0;
}

鍏充簬Floyd綆楁硶,鍙互榪欐牱鐞嗚В...姣斿鍒氬紑濮嬪彧鍙?涓粨鐐筰,j,瀹冧滑鐨勮窛紱諱竴瀹氭槸dis(i,j),浣嗘槸榪樻湁鍏跺畠緇撶偣,闇瑕佹妸鍏跺畠緇撶偣涔熸參鎱㈠姞榪涙潵,鎵浠ユ渶澶栧眰鍏充簬k鐨勫驚鐜剰鎬濆氨鏄粠0鑷硁N-1,鎶婃墍鏈夊叾瀹冪粨鐐瑰姞榪涙潵,姣斿鍔犲叆0鍙風(fēng)粨鐐瑰悗,璺濈dis(i,0)+dis(0,j)鍙兘浼?xì)姣攄is(i,j)灝?濡傛灉鏄繖鏍峰氨鏇存柊dis(i,j),鐒跺悗鍚庨潰鍔犲叆1鍙風(fēng)粨鐐圭殑鏃跺?瀹為檯涓婃槸鍦ㄥ凡緇忓姞鍏?鍙風(fēng)粨鐐圭殑鍩虹涓婅繘琛岀殑澶勭悊浜?鏁堟灉鍙樻垚dis(i,0,1,j),鍙兘鏄渶灝忕殑,鑰屼笖涓棿鐨?,1涔熷彲鑳芥槸涓嶅瓨鍦ㄧ殑,褰撶劧鏄湪dis(i,j)鍘熸湰灝辨槸鏈灝忕殑鎯呭喌涓?..
榪欎釜綆楁硶鍙互鐢ㄤ笅闈㈣繖涓浘鐗囨弿榪?..


瑙f硶3:
#include <stdio.h>
#include <string.h>
#define MAX  (100 + 10)
#define INF (1000000 + 10)
int nN, nM;
int nDis[MAX][MAX];
void Search(int nSource)
{
    bool bVisit[MAX];
    memset(bVisit, false, sizeof(bVisit));
    bVisit[nSource] = true;
    for (int i = 0; i < nN - 1; ++i)
    {
        int nMin = INF;
        int nMinPos = 0;
        for (int j = 0; j < nN; ++j)
        {
            if (!bVisit[j] && nDis[nSource][j] < nMin)
            {
                nMin = nDis[nSource][j];
                nMinPos = j;
            }
        }
        if (bVisit[nMinPos] == false)
        {
            bVisit[nMinPos] = true;
            for (int j = 0; j < nN; ++j)
            {
                if (nDis[nSource][nMinPos] + nDis[nMinPos][j] < nDis[nSource][j])
                {
                    nDis[nSource][j] = nDis[nSource][nMinPos] + nDis[nMinPos][j];
                }
            }
        }
    }
}
void SearchAll()
{
    for (int k = 0; k < nN; ++k)
    {
        Search(k);
    }
}
int main()
{
    while (scanf("%d%d", &nN, &nM) == 2)
    {
        for (int i = 0; i < nN; ++i)
        {
            for (int j = 0; j < nN; ++j)
            {
                if (i == j)
                {
                    nDis[i][j] = 0;
                }
                else
                {
                    nDis[i][j] = INF;
                }
            }
        }
        while (nM--)
        {
            int nX, nY, nK;
            scanf("%d%d%d", &nX, &nY, &nK);
            nDis[nX][nY] = nDis[nY][nX] = nK;
        }
        SearchAll();
        bool bOk = false;
        int nMin = 1 << 30;
        for (int i = 0; i < nN; ++i)
        {
            int nTemp = 0;
            int j = 0;
            for ( ; j < nN; ++j)
            {
                if (i == j) continue;
                if (nDis[i][j] == INF)
                {
                    break;
                }
                else
                {
                    if (nDis[i][j] > nTemp)
                    {
                        nTemp = nDis[i][j];
                    }
                }
            }
            if (j == nN)
            {
                bOk = true;
                if (nTemp < nMin)
                {
                    nMin = nTemp;
                }
            }
        }
        if (bOk)
        {
            printf("%d\n", nMin);
        }
        else
        {
            printf("Can not\n");
        }
    }
    return 0;
}
榪澃鏂壒鎷夌畻娉曠殑鏍稿績(jī)鎬濇兂鏄淮鎶や竴涓簮鐐歸《鐐歸泦鍚?浠諱綍鏈鐭礬寰勪竴瀹氭槸浠庤繖涓《鐐歸泦鍚堝彂鍑虹殑...
鍒濆鍖栨椂,榪欎釜闆嗗悎灝辨槸婧愮偣...
鎴戜滑浠庤鍏跺畠緇撶偣涓夊嚭涓涓粨鐐?璇ョ粨鐐瑰埌婧愮偣鐨勮窛紱繪渶灝?..
鏄劇劧,榪欎釜璺濈灝辨槸婧愮偣鍒拌緇撶偣鐨勬渶鐭窛紱諱簡(jiǎn),鎴戜滑宸茬粡鎵懼埌浜?jiǎn)绛旀鐨勪竴閮ㄥ垎浜?..鐒跺悗,鎴戜滑灝辨妸璇ョ粨鐐瑰姞鍏ュ墠闈㈡墍璇寸殑欏剁偣闆嗗悎...
鐜板湪欏剁偣闆嗗悎鏇存柊浜?鎴戜滑蹇呴』寰楁洿鏂拌窛紱諱簡(jiǎn)...鐢變簬鏂板姞鍏ョ殑緇撶偣鍙兘鍙戝嚭杈逛嬌寰楀師鏉ユ簮鐐瑰埌鏌愪簺緇撶偣鐨勮窛紱繪洿灝?涔熷氨鏄垜浠殑婧愮偣鍙樺ぇ浜?杈逛篃鍙樺浜?鎵浠ユ垜浠殑鏈鐭窛紱婚泦鍚堢殑鍊間篃蹇呴』鍙樺寲浜?..
璇ョ畻娉曚竴鐩村驚鐜痭N-1嬈?鐩磋嚦鎵鏈夌殑鐐歸兘鍔犲叆婧愮偣欏剁偣闆嗗悎...


yx 2011-12-04 22:20 鍙戣〃璇勮
]]>
99精品国产99久久久久久97| av国内精品久久久久影院| 久久这里只精品国产99热| 精品久久久久久99人妻| 久久丝袜精品中文字幕| 无码AV中文字幕久久专区| 国产精品久久久久…| 久久久久亚洲爆乳少妇无| 久久久国产精华液| 国产69精品久久久久99尤物| 青青草原综合久久大伊人| 狠狠色丁香久久婷婷综| 伊人久久亚洲综合影院| 久久99热精品| 一本久久a久久精品vr综合| 99久久久久| 久久久久亚洲AV成人片| 色狠狠久久综合网| 国产成人久久精品麻豆一区| 无码人妻少妇久久中文字幕蜜桃 | 亚洲Av无码国产情品久久| 亚洲va久久久噜噜噜久久狠狠 | 一个色综合久久| 国产精品成人久久久久久久| 无码人妻久久一区二区三区免费| 久久精品国产72国产精福利| 国产精品99久久免费观看| 久久精品免费一区二区| 一本久道久久综合狠狠躁AV| 久久福利片| 久久久久国产亚洲AV麻豆| 91久久成人免费| 一本色道久久88加勒比—综合| 久久久无码一区二区三区| 久久久精品人妻一区二区三区蜜桃| 久久精品综合网| 免费精品久久天干天干| 色婷婷综合久久久久中文字幕| 久久免费大片| 国产精品久久久久a影院| 人人狠狠综合久久亚洲|