Zdravím,
poterbujem nájsť najkratšiu cestu v grafe medzi rôznymi dvojicami vrcholov.
Problém je v tom, že dĺžky hrán, cez ktoré vedie cesta musia rásť a cesta musí prechádzať cez najviac x hrán.
To znamená, že najkratšia cesta, ktorá spĺňa prvú podmienku nemusí spĺňať druhú a preto nie je vhodná.
Graf je orientovaný a ohodnotený, ale medzi niektorými vrcholmi môže ísť viac hrán s rôznou dĺžkou (v rovnakom smere).
Na riešenie úvodného problému by som asi použil Floyd-Warshallov algoritmus, ale ako ho modifikovať tak, aby boli splnené? Tiež mám trochu problém s tými viacerými hranami.
//Floyd-Warshall
for (int k=0; k<n; k++) {
for (int i=0; i<n; i++) {
for (int j=0; j<n; j++) {
int a=vz[i][k]+vz[k][j];
if (a<vz[i][j]) vz[i][j]=a;
}
}
}
Nejaké nápady ako začať?
Ďakujem za odpoveď