青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

poj 3255 Roadblocks 次短路

   這個(gè)題是求次短路。有個(gè)不錯(cuò)的解法,是根據(jù)一個(gè)結(jié)論,替換調(diào)最短路里面的一條邊肯定能得到次短路。
   那么,只要枚舉所有邊就可以了。比如,假設(shè)開(kāi)始點(diǎn)為s,目標(biāo)點(diǎn)是d,設(shè)最短路為dis(s,d)。對(duì)于邊(u,v),
dis(s, u) + w(u, v) + dis(v, d) 大于dis(s, d),則該路徑就可能是次短路。求出最小的大于dis(s,d)的值就可以了。
   方式是從s開(kāi)始和從d開(kāi)始進(jìn)行2次單源多終點(diǎn)最短路徑算法。然后枚舉邊即可。
   
   該算法可以這樣理解。因?yàn)樘鎿Q最短路徑里面的邊,路徑的長(zhǎng)度只會(huì)變大或者不變。如果存在讓更短路徑變小的邊,
這本身就與最短路徑是矛盾的。所以替換2條或者更多的邊只會(huì)讓路徑變得更大。因此,只需考慮替換一條邊的情況
即可。

   代碼如下:
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
#include <vector>
using namespace std;

const int MAX_N = 5000 + 10;
struct Edge
{
    int nE;
    int nDis;
    Edge(int e, int d):nE(e), nDis(d) {}
};
vector<Edge> graph[MAX_N];
bool bVisit[MAX_N];
int nSDis[MAX_N];
int nEDis[MAX_N];

struct Node
{
    int nN;
    int nDis;

    bool operator < (const Node& node) const
    {
        return nDis > node.nDis;
    }
};

int ShortestPath(int nS, int nE, int* nDis, int nN)
{
    priority_queue<Node> pq;
    memset(bVisit, falsesizeof(bVisit));
    for (int i = 1; i <= nN; i++)
    {
        nDis[i] = 0x7fffffff;
    }
    nDis[nS] = 0;
    Node head;
    head.nDis = 0, head.nN = nS;
    pq.push(head);

    while (pq.empty() == false)
    {
        Node head = pq.top();
        pq.pop();
        int nU = head.nN;
        if (bVisit[nU]) continue;
        bVisit[nU] = true;

        for (int i = 0; i < graph[nU].size(); ++i)
        {
            int nV = graph[nU][i].nE;
            int nLen = head.nDis + graph[nU][i].nDis;
            if (nLen < nDis[nV])
            {
                nDis[nV] = nLen;
                Node node;
                node.nDis = nLen;
                node.nN = nV;
                pq.push(node);
            }
        }
    }
    
    return nDis[nE];
}

int Second(int nS, int nE, int nN)
{
    int nShortest = ShortestPath(nS, nE, nSDis, nN);
    ShortestPath(nE, nS, nEDis, nN);

    int nAns = 0x7fffffff;

    for (int i = 1; i <= nN; ++i)
    {
        for (int j = 0; j < graph[i].size(); ++j)
        {
            int nU = i;
            int nV = graph[i][j].nE;
            int nLen = nSDis[i] + graph[i][j].nDis + nEDis[nV];
            if (nLen != nShortest)
            {
                nAns = min(nAns, nLen);
            }
        }
    }

    return nAns;
}

int main()
{
    int nN, nR;
    int nA, nB, nD;

    while (scanf("%d%d", &nN, &nR) == 2)
    {
        for (int i = 1; i <= nN; ++i)
        {
            graph[i].clear();
        }

        while (nR--)
        {
            scanf("%d%d%d", &nA, &nB, &nD);
            graph[nA].push_back(Edge(nB, nD));
            graph[nB].push_back(Edge(nA, nD));
        }
        printf("%d\n", Second(1, nN, nN));
    }

    return 0;
}

posted on 2012-09-03 22:39 yx 閱讀(1545) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 圖論


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


<2012年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

導(dǎo)航

統(tǒng)計(jì)

公告

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

me

好友

同學(xué)

網(wǎng)友

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            91久久线看在观草草青青| 欧美日韩精品福利| 蜜桃久久av| 亚洲精品一区二区三| 欧美激情久久久久| 小处雏高清一区二区三区| 国产精品美女久久久免费| 久久精品一区二区三区中文字幕 | 亚洲一区视频在线观看视频| 亚洲国产精品悠悠久久琪琪| 亚洲国产综合在线看不卡| 久热精品视频在线观看| 99re66热这里只有精品3直播| 夜夜精品视频一区二区| 免费观看成人| 午夜国产精品影院在线观看| 最新国产精品拍自在线播放| 午夜欧美不卡精品aaaaa| 国内外成人在线| 99国产精品国产精品毛片| 影音先锋亚洲精品| 亚洲自拍16p| 亚洲一线二线三线久久久| 欧美在线中文字幕| 亚洲欧洲99久久| 亚洲欧美色婷婷| 伊人狠狠色丁香综合尤物| 亚洲精品在线观看视频| 一本久道久久综合中文字幕| 久久综合免费视频影院| 久久精品免费电影| 在线视频免费在线观看一区二区| 欧美色视频一区| 亚洲日本无吗高清不卡| 亚洲日本在线视频观看| 老司机免费视频一区二区| 欧美成人免费小视频| 一区二区久久久久久| 欧美韩国在线| 亚洲午夜精品国产| 久久九九国产精品| 91久久精品www人人做人人爽 | 欧美福利小视频| 亚洲国产成人在线| 欧美视频在线观看 亚洲欧| 性亚洲最疯狂xxxx高清| 亚洲一级影院| 亚洲激情图片小说视频| 国产欧美一区二区精品性| 欧美在线你懂的| 亚洲日本中文字幕区| 欧美主播一区二区三区| 一区二区免费在线观看| 国产精品免费看| 久久久999| 亚洲无亚洲人成网站77777 | 欧美性一二三区| 久久免费观看视频| 99国产精品一区| 亚洲丰满在线| 国产日韩一区在线| 欧美黄色免费网站| 欧美一区二区视频97| 亚洲国产欧美日韩| 欧美一级黄色录像| 亚洲综合视频在线| 欧美1区2区| 一本大道久久a久久精二百| 久久色在线观看| 欧美一区二区三区四区视频| 亚洲午夜国产成人av电影男同| 国产视频在线观看一区二区| 欧美日韩国产小视频在线观看| 久久综合久久综合这里只有精品| 午夜精品久久久久久久99樱桃| 亚洲国产成人av在线| 在线欧美一区| 一区二区三区无毛| 激情久久综艺| 亚洲大胆女人| 日韩一级在线观看| 久久久www| 亚洲国产日日夜夜| 日韩一级不卡| 久久大香伊蕉在人线观看热2| 亚洲欧美日韩成人高清在线一区| 欧美亚洲一区在线| 欧美国产免费| 玖玖综合伊人| 亚洲精品免费在线观看| 亚洲色诱最新| 欧美a级片网站| 欧美激情在线观看| 久久久久五月天| 欧美在线首页| 亚洲国产精品一区二区第四页av| 亚洲国产成人精品久久久国产成人一区 | 亚洲你懂的在线视频| 久久国产精品亚洲va麻豆| 久热精品在线视频| 亚洲在线中文字幕| 欧美激情 亚洲a∨综合| 激情丁香综合| 久久国产欧美精品| 亚洲视频久久| 欧美成人午夜激情在线| 国产一区二区三区免费在线观看| 欧美一级淫片aaaaaaa视频| 欧美亚一区二区| 欧美成人免费网站| 在线看无码的免费网站| 亚洲一区二区三区精品在线观看| 久久不射中文字幕| 亚洲午夜av在线| 欧美天堂亚洲电影院在线观看| 激情另类综合| 久久国产综合精品| 黄色av日韩| 欧美激情国产日韩精品一区18| 久久婷婷国产综合尤物精品 | 亚洲女女做受ⅹxx高潮| 亚洲免费高清| 欧美日产国产成人免费图片| 99国产精品99久久久久久粉嫩| 亚洲综合首页| 久久综合国产精品台湾中文娱乐网| 国产日韩欧美三级| 激情成人亚洲| 亚洲人成人99网站| 欧美人与禽猛交乱配视频| 亚洲一区二区免费看| 国产午夜亚洲精品不卡| 亚洲精品影院| 久久精品国产99| 亚洲第一色在线| 亚洲午夜电影| 国产日韩欧美一区在线| 欧美激情一区二区三级高清视频| 欧美日韩免费高清| 老牛嫩草一区二区三区日本| 欧美成人国产一区二区| 欧美在线国产精品| 国产精品亚洲а∨天堂免在线| 怡红院av一区二区三区| 欧美在线www| 亚洲午夜久久久久久久久电影网| 久久久亚洲人| 羞羞视频在线观看欧美| 国产欧美日韩综合一区在线播放 | 亚洲福利视频在线| 久久精品91久久香蕉加勒比| 国产精品国产精品国产专区不蜜| 亚洲盗摄视频| 亚洲人成网站色ww在线| 六月天综合网| 午夜精品久久久久久99热| 噜噜噜91成人网| 欧美成人精品一区| 亚洲欧美日韩一区| 艳妇臀荡乳欲伦亚洲一区| 欧美日韩国产高清| 欧美韩日高清| 亚洲欧美日韩在线不卡| 欧美一区视频| 99re热这里只有精品视频| 亚洲一级黄色| 国产精品一香蕉国产线看观看| 亚洲啪啪91| 99re6这里只有精品| 欧美在线亚洲综合一区| 在线观看日产精品| 日韩午夜精品视频| 国内精品久久久久影院色| 亚洲精品影视在线观看| 亚洲国产精品t66y| 亚洲欧美久久久| 99re热这里只有精品视频| 久久久最新网址| 久久手机免费观看| 在线一区二区三区四区五区| 午夜精品区一区二区三| 午夜在线一区| 亚洲电影自拍| 亚洲黄色天堂| 免费一区视频| 亚洲国产第一| 欧美亚洲一区二区三区| 国产欧美日韩另类视频免费观看 | 一区二区三区四区五区精品视频 | 久久精品一本久久99精品| 亚洲自拍偷拍网址| 国产麻豆视频精品| 欧美一级视频| 亚洲国产高清视频| 亚洲国产欧美精品| 欧美成人精品不卡视频在线观看| 国产精品高潮视频| 99精品免费网| 欧美一区二区三区精品| 红桃视频国产一区|