杭電 3790 最短路徑問題

2021-07-10 10:54:26 字數 1167 閱讀 5637

雙權最短路

需要同時考慮兩個權值

這裡是優先長度,長度相同的情況下優先花費較少的邊

有點麻煩的是

之前用的寫法的邏輯似乎出了點問題

在更新邊長時的判斷不夠嚴謹

好在最後發現了

還有這種型別的題

一般都需要考慮重邊問題

用的dijkstra

#include

int e[1200][1200],q[1200][1200],dis[1200],qs[1200];

int main()

}while(m--)

}int

s,t;

scanf("%d

%d",&s,&t);

for(int i=1; i<=n; i++)

bool flag[1200];

for(int i=1; i<=n; i++)

flag[i]=false;

flag[s]=true;

for(int i=1; i<=n; i++) }}

printf("%d

%d\n",dis[t],qs[t]);

}return

0;}

再放乙個floyd的吧

不過這個超時了

#include 

int e[1200][1200];

intq[1200][1200];

int main()

while(m--)

}for(int k=1; k<=n; k++)

for(int i=1; i<=n; i++)

for(int j=1; j<=n; j++)

if(e[i][j]>e[i][k]+e[k][j]||(e[i][j]==e[i][k]+e[k][j]&&q[i][j]>q[i][k]+q[k][j]))

ints,t;

scanf("%d

%d",&s,&t);

printf("%d

%d\n",e[s][t],q[s][t]);

}return

0;}

杭電 3790 最短路徑問題

沒什麼太大的感覺,只是覺得進步是乙個過於緩慢的感覺 dijkstra演算法的應用,注意可重邊的處理以及同等權值的路徑時,路徑的選擇 include define maxn 1010 define inf 1000000000 intmat maxn maxn intbb maxn maxn intm...

3790 最短路徑問題

問題 problem description 給你n個點,m條無向邊,每條邊都有長度d和花費p,給你起點s終點t,要求輸出起點到終點的最短距離及其花費,如果最短距離有多條路線,則輸出花費最少的。input 輸入n,m,點的編號是1 n,然後是m行,每行4個數 a,b,d,p,表示a和b之間有一條邊,...

杭電2544 最短路徑

problem description 在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input 輸入包括多組資料。每組資料第一行是兩個整...