1595. Minimale Kosten für die Verbindung zweier Punktgruppen
Schwierigkeit:Schwer
Themen: Array, dynamische Programmierung, Bitmanipulation, Matrix, Bitmaske
Sie erhalten zwei Gruppen von Punkten, wobei die erste Gruppe die Größe1 Punkte hat, die zweite Gruppe die Größe2 Punkte hat und die Größe1 > = Größe2.
Die Kosten der Verbindung zwischen zwei beliebigen Punkten werden in einer Größe1 x Größe2-Matrix angegeben, wobei cost[i][j] die Kosten für die Verbindung von Punkt i sind der ersten Gruppe und Punkt j der zweiten Gruppe. Die Gruppen sind verbunden, wenn jeder Punkt in beiden Gruppen mit einem oder mehreren Punkten in der gegenüberliegenden Gruppe verbunden ist. Mit anderen Worten: Jeder Punkt der ersten Gruppe muss mit mindestens einem Punkt der zweiten Gruppe verbunden sein, und jeder Punkt der zweiten Gruppe muss mit mindestens einem Punkt der ersten Gruppe verbunden sein.
Geben Sie die Mindestkosten zurück, die für die Verbindung der beiden Gruppen erforderlich sind.
Beispiel 1:
1--A 2--B This results in a total cost of 17.
Beispiel 2:
1--A 2--B 2--C 3--A This results in a total cost of 4.
Beachten Sie, dass mehrere Punkte mit Punkt 2 in der ersten Gruppe und Punkt A in der zweiten Gruppe verbunden sind. Dies spielt keine Rolle, da die Anzahl der Punkte, die verbunden werden können, unbegrenzt ist. Wir kümmern uns nur um die minimalen Gesamtkosten.
Beispiel 3:
Einschränkungen:
Hinweis:
Lösung:
Wir können die dynamische Programmierung mit Bitmasking nutzen. Die Idee besteht darin, die Kosten zu minimieren, indem jeder Punkt in der ersten Gruppe berücksichtigt und versucht wird, ihn mit allen Punkten in der zweiten Gruppe zu verbinden.
Staatsvertretung:
Zustandsübergang:
Basisfall:
Ziel:
Lassen Sie uns diese Lösung in PHP implementieren: 1595. Minimale Kosten für die Verbindung zweier Punktgruppen
Erläuterung:
Dieser Ansatz geht effizient mit den Einschränkungen des Problems um und stellt die minimalen Kosten für die Verbindung der beiden Gruppen sicher.
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt vonMinimale Kosten für die Verbindung zweier Punktgruppen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!