国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Hdu 3631 Shortest Path(Floyd插點)

2019-11-11 01:10:38
字體:
來源:轉載
供稿:網友

題目地址:http://acm.hdu.edu.cn/showPRoblem.php?pid=3631

思路:Floyd,對于已求出最短路的圖,若增加一點k及相應的邊,則只需將k當做中間節點更新點u與點v的距離即可。因此,每增加一個標記點時,則將標記點當做中間節點更新最短路徑,由于點數只有300,時間上可以承受。

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;typedef long long LL;const int maxn=300+50;const int INF=0x3f3f3f3f;int n,m,q;int flag[maxn];LL g[maxn][maxn];void Floyd(int k){    for(int i=0; i<n; i++)    {        for(int j=0; j<n; j++)        {            g[i][j]=min(g[i][j],g[i][k]+g[k][j]);        }    }}void init(){    for(int i=0; i<n; i++)    {        g[i][i]=0;        for(int j=0; j<n; j++)            if(i!=j) g[i][j]=INF;    }    memset(flag,0,sizeof(flag));}int main(){    int cas=0;    while(scanf("%d%d%d",&n,&m,&q)!=EOF&&n)    {        cas++;        if(cas!=1) printf("/n");        printf("Case %d:/n",cas);        init();        for(int i=0; i<m; i++)        {            LL w;            int x,y;            scanf("%d%d%lld",&x,&y,&w);            g[x][y]=min(g[x][y],w);        }        for(int i=0; i<q; i++)        {            int cmd,x,y;            scanf("%d",&cmd);            if(cmd==0)            {                scanf("%d",&x);                if(flag[x]) printf("ERROR! At point %d/n",x);                else                {                    Floyd(x);                    flag[x]=1;                }            }            else            {                scanf("%d%d",&x,&y);                if(!flag[x]||!flag[y]) printf("ERROR! At path %d to %d/n",x,y);                else                {                    if(g[x][y]>=INF) printf("No such path/n");                    else printf("%lld/n",g[x][y]);                }            }        }    }    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南丰县| 南宫市| 莱阳市| 兴海县| 东乡| 栾城县| 怀远县| 博野县| 崇义县| 什邡市| 苍南县| 哈尔滨市| 云安县| 准格尔旗| 嫩江县| 苍南县| 连江县| 福海县| 武宁县| 江城| 宁化县| 民勤县| 黄平县| 丹寨县| 浮山县| 兴业县| 抚远县| 怀集县| 武川县| 三穗县| 中牟县| 南乐县| 勐海县| 丁青县| 陵水| 历史| 富民县| 合作市| 玉田县| 孟连| 舞钢市|