Ce problème est un sous-problème d'un problème posé dans l'ACM ICPC Kanpur Regionals élimination ronde (ACM ICPC Regionals Elim.):l'optimisation d'une fonction de distance 2 de paramètres sur les segments de ligne
donné 2 segments de droite délimitée par les points 2D (Pa, Pb)
et (Pc, Pd)
respectivement, pour p
et q
(dans la plage [0,1]
) qui minimise la fonction
f(p, q) = D(Px, Pa) + D(Py, Pd) + k D(Px, Py) where
2 <= k <= 5,
Px = p Pa + (1-p) Pb,
Py = q Pc + (1-q) Pd and
D(x, y) is the euclidean distance between points x and y
(effectivement, Px et Py sont des points sur les segments de ligne et la fonction code pour le coût d'aller de Pa à Pd à travers un conne lien ction d'un coût qui est k fois la distance euclidienne)
Quelques observations concernant cette fonction:
- segments de ligne parallèle entraînera toujours atleast un des
p
etq
pour être 0 ou 1 -
Les segments de ligne d'intersection provoquent toujoursp
etq
pour localiser le point d'intersection des segments de ligne (l'inégalité de triangle peut être appliquée pour le prouver)
La question: Dans le cas général où les lignes sont inclinées et potentiellement séparées, comment minimisons-nous cette fonction?
vous devriez écrire cela en c ou C++! – Svisstack
@Svisstack - La langue utilisée n'est pas importante pour moi, l'algorithme est. –
@Svisstack - Auriez-vous besoin d'une clarification de la question en C/C++? Si oui, quelle partie? –