Anwendung herunterladen
Wählen Sie einen Ordner und lassen Sie die betreffenden Dateien vor einer Änderung lesen. Legen Sie Ziel und Grenzen der Aufgabe fest.
Finde einen minimalen Spannwald für höchstens 64 Knoten und 1024 ganzzahlig gewichtete Kanten innerhalb ±10^9. Teste getrennte Knoten, parallele Kanten, Schleifen und deterministische Gleichstände, lehne ungültige Endpunkte und Boolesche Werte ohne Eingabeänderung ab.
Wählen Sie einen Ordner und lassen Sie die betreffenden Dateien vor einer Änderung lesen. Legen Sie Ziel und Grenzen der Aufgabe fest.
Wählen Sie einen kompatiblen Endpunkt. Verfügbare Werkzeuge und Antwortqualität hängen vom konfigurierten Modell und Server ab.
Prüfen Sie Änderungen und Befehlsausgaben. Führen Sie die Projektprüfungen aus, bevor Sie das Ergebnis übernehmen; erzeugter Code ist nicht automatisch getestet.
Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.
def spanning_forest(count, edges):
if type(count) is not int or not 0 <= count <= 64 or type(edges) is not list or len(edges) > 1024:
raise ValueError("forest.input")
ordered = []
for edge in edges:
if type(edge) not in (list, tuple) or len(edge) != 3 or any(type(x) is not int for x in edge):
raise ValueError("forest.edge")
a, b, weight = edge
if not 0 <= a < count or not 0 <= b < count or abs(weight) > 10**9:
raise ValueError("forest.bounds")
ordered.append((weight, min(a, b), max(a, b)))
parent = list(range(count))
def root(node):
while parent[node] != node:
parent[node] = parent[parent[node]]
node = parent[node]
return node
selected, total = [], 0
for weight, a, b in sorted(ordered):
x, y = root(a), root(b)
if x != y:
parent[x] = y
selected.append((a, b, weight))
total += weight
return total, selected
Vor dem Anwenden prüfen. Prüfen Sie Änderungen und Befehlsausgaben. Führen Sie die Projektprüfungen aus, bevor Sie das Ergebnis übernehmen; erzeugter Code ist nicht automatisch getestet.