雙權最短路
需要同時考慮兩個權值
這裡是優先長度,長度相同的情況下優先花費較少的邊
有點麻煩的是
之前用的寫法的邏輯似乎出了點問題
在更新邊長時的判斷不夠嚴謹
好在最後發現了
還有這種型別的題
一般都需要考慮重邊問題
用的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 輸入包括多組資料。每組資料第一行是兩個整...