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

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

Hdu 3631 Shortest Path(Floyd插點)

2019-11-10 22:17:19
字體:
來源:轉載
供稿:網友

題目地址: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;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰州市| 宁波市| 明水县| 陕西省| 犍为县| 南华县| 西充县| 肥西县| 丁青县| 榆社县| 成安县| 东光县| 临漳县| 正宁县| 河东区| 黔西县| 宁陵县| 东乌珠穆沁旗| 闻喜县| 淮滨县| 吕梁市| 五莲县| 景东| 龙井市| 金塔县| 涞源县| 蚌埠市| 钦州市| 廉江市| 乐亭县| 彩票| 禄劝| 普兰县| 靖远县| 中江县| 福建省| 平顶山市| 贵德县| 霍林郭勒市| 宣汉县| 辰溪县|