Bei einem Kaktus wollen wir seine Kanten so gewichten, dass
- Für jeden Scheitelpunkt beträgt die Summe der Gewichte der auf den Scheitelpunkt einfallenden Kanten nicht mehr als 1.
- Die Summe aller Kantengewichte wird maximiert.
Die Antwort ist eindeutig nicht mehr als zum Eckpunkte ( wo ist die Summe für einen Scheitelpunkt und ist die Summe über jede Kante). Diese Grenze ist für Zyklusgraphen erreichbar, indem jede Kante 1/2 gewichtet wird.
Ich habe einen gierigen Algorithmus für Bäume gefunden. Weisen Sie den auf Blätter einfallenden Kanten einfach 1 zu und entfernen Sie sie und ihre Nachbarn in wiederholten Durchgängen aus dem Diagramm. Dadurch wird der Kaktus auf eine Reihe miteinander verbundener Zyklen reduziert. Zu diesem Zeitpunkt nahm ich an, dass die verbleibenden Zyklen nicht miteinander verbunden und jede Kante 1/2 gewichtet waren. Dies hat 9/10 Testfälle, ist aber natürlich unvollständig.
Wie können wir dieses Problem für Kakteen im Allgemeinen lösen? Ich würde Hinweise vollständigen Lösungen vorziehen, aber beides ist in Ordnung.
Diese Frage betrifft ein Problem aus einem InterviewStreet CompanySprint . Ich bin bereits angetreten, möchte aber einige Gedanken zu einem Problem haben (Lösungen werden nicht veröffentlicht, und ich habe meinen Kopf wegen dieses Problems gegen die Wand geschlagen).