QOJ.ac

QOJ

Limite de temps : 2.0 s Limite de mémoire : 1024 MB Points totaux : 100 Hackable ✓

#14718. Treffen zum Essen

Statistiques

Auf einem wunderschönen Campus treffen sich Panda und seine Freunde zum Essen. Sie genießen es, schon auf dem Weg Zeit miteinander zu verbringen, da sie sich dabei ungezwungen unterhalten können.

Der Campus wird als zusammenhängender, ungerichteter Graph mit $n$ Knoten und $m$ Kanten mit Längen modelliert. Der Treffpunkt ist das Einkaufszentrum, das sich an Knoten $1$ befindet. $k$ Freunde starten an paarweise verschiedenen Knoten und machen sich auf den Weg zum Einkaufszentrum. Alle Freunde bewegen sich mit derselben Geschwindigkeit ($1$ Längeneinheit pro Zeiteinheit) und dürfen an jeder beliebigen Position entlang einer Kante die Richtung wechseln (siehe Beispielerklärung).

Sei $t_{\text{meet}}$ der frühestmögliche Zeitpunkt, zu dem alle Freunde das Einkaufszentrum erreichen können. Bestimme ausgehend von diesem frühestmöglichen Treffzeitpunkt für jeden Freund einzeln die maximale Gesamtzeit, die er in Begleitung verbringen kann (d. h. mindestens ein weiterer Freund befindet sich am exakt selben Ort im Graphen, sei es ein Knoten oder eine Position auf einer Kante), bevor schließlich alle im Einkaufszentrum zusammenkommen.

Wenn ein bestimmter Freund $i$ betrachtet wird, werden die Wege und Bewegungsstrategien aller anderen Freunde $j \neq i$ so optimiert, dass die Zeit in Begleitung für Freund $i$ maximiert wird, solange alle Freunde spätestens zum Zeitpunkt $t_{\text{meet}}$ am Einkaufszentrum eintreffen.

Eingabe

Die erste Zeile enthält eine ganze Zahl $T$ ($1 \le T \le 10^4$), die die Anzahl der Testfälle angibt.

Für jeden Testfall enthält die erste Zeile drei ganze Zahlen $n, m, k$ ($2 \le n \le 3 \times 10^5$, $n - 1 \le m \le 10^6$, $2 \le k \le n$), die die Anzahl der Knoten, Kanten bzw. Freunde angeben.

Die zweite Zeile enthält $k$ paarweise verschiedene ganze Zahlen $a_1, a_2, \ldots, a_k$ ($1 \le a_i \le n$), die die Startknoten der Freunde bezeichnen.

Die nächsten $m$ Zeilen enthalten jeweils drei ganze Zahlen $u, v, w$ ($1 \le u, v \le n$, $u \neq v$, $1 \le w \le 10^9$) und geben eine Kante zwischen Knoten $u$ und $v$ mit der Länge $w$ an. Der Graph ist zusammenhängend und enthält weder Mehrfachkanten noch Selbstschleifen.

Die Summe von $n$ über alle Testfälle überschreitet nicht $3 \times 10^5$, und die Summe von $m$ über alle Testfälle überschreitet nicht $10^6$.

Ausgabe

Gib für jeden Testfall eine Zeile mit $k$ durch Leerzeichen getrennten Gleitkommazahlen aus, jeweils formatiert auf genau eine Nachkommastelle, die die maximale Zeit in Begleitung für jeden Freund angeben.

Beispiele

Eingabe 1

3
4 3 2
3 4
1 2 3
3 2 1
4 2 1
2 1 2
1 2
1 2 3
3 2 3
1 2 3
1 2 3
1 3 5

Ausgabe 1

3.0 3.0
1.5 1.5
3.5 3.5 2.5

Hinweis

Für den dritten Testfall im Beispiel beträgt der früheste Treffzeitpunkt am Einkaufszentrum $5$ Zeiteinheiten.

  • Die Freunde von Knoten $1$ und $2$ können sich nach $1.5$ Einheiten in der Mitte der Kante $(1, 2)$ treffen, in weiteren $1.5$ Einheiten gemeinsam zum Einkaufszentrum zurückkehren und dort $2$ Einheiten warten, was insgesamt $3.5$ Einheiten gemeinsamer Zeit ergibt.
  • Der Freund von Knoten $3$ trifft die Freunde von Knoten $1$ nach $2.5$ Einheiten in der Mitte der Kante $(1, 3)$ und kehrt mit ihnen in $2.5$ Einheiten zurück, was insgesamt $2.5$ Einheiten gemeinsamer Zeit ergibt.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.