锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品无码久久久久久,久久久精品人妻一区二区三区蜜桃 ,国产精品久久新婚兰兰http://www.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://www.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://www.shnenglu.com/csu-yx-2013/archive/2012/09/03/189318.html</guid><wfw:comment>http://www.shnenglu.com/csu-yx-2013/comments/189318.html</wfw:comment><comments>http://www.shnenglu.com/csu-yx-2013/archive/2012/09/03/189318.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/csu-yx-2013/comments/commentRss/189318.html</wfw:commentRss><trackback:ping>http://www.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://www.shnenglu.com/csu-yx-2013/aggbug/189318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/csu-yx-2013/" target="_blank">yx</a> 2012-09-03 22:39 <a href="http://www.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://www.shnenglu.com/csu-yx-2013/archive/2011/12/04/161448.htmlyxyxSun, 04 Dec 2011 14:20:00 GMThttp://www.shnenglu.com/csu-yx-2013/archive/2011/12/04/161448.htmlhttp://www.shnenglu.com/csu-yx-2013/comments/161448.htmlhttp://www.shnenglu.com/csu-yx-2013/archive/2011/12/04/161448.html#Feedback0http://www.shnenglu.com/csu-yx-2013/comments/commentRss/161448.htmlhttp://www.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久久精品免费看国产一区二区三区| 久久久无码一区二区三区| 日韩欧美亚洲综合久久影院d3| 精品久久人人妻人人做精品 | 中文精品久久久久人妻不卡| 漂亮人妻被黑人久久精品| 久久精品国产精品亚洲艾草网美妙| 欧美日韩中文字幕久久久不卡| 精品国产一区二区三区久久久狼| 久久99精品国产麻豆婷婷| 婷婷国产天堂久久综合五月| 久久亚洲日韩精品一区二区三区| 国产精品久久久久久搜索| 一本色道久久综合| 曰曰摸天天摸人人看久久久| 无码超乳爆乳中文字幕久久| 久久人人爽人人爽AV片| 99国产精品久久| 久久男人Av资源网站无码软件 | 一本色综合网久久| 国内精品伊人久久久久影院对白 | 亚洲综合伊人久久综合| 久久综合亚洲色HEZYO国产| 国产成人综合久久精品尤物| 久久精品一本到99热免费| 奇米影视7777久久精品人人爽| 久久久久亚洲精品天堂久久久久久 | 香蕉久久夜色精品国产尤物| 精品久久综合1区2区3区激情| 国内精品久久久久| 国产精品久久久久国产A级| 亚洲AV日韩精品久久久久| 午夜精品久久久久久毛片| 伊人久久大香线蕉av不变影院| 久久人做人爽一区二区三区| 一本久久知道综合久久| 久久婷婷激情综合色综合俺也去| 久久久久亚洲精品天堂|