QOJ.ac

QOJ

时间限制: 2.0 s 内存限制: 1024 MB 总分: 100 可 Hack ✓

#14718. Møtes for et måltid

统计

På et vakkert campus skal Panda og vennene hans møtes for et måltid. De liker å tilbringe tid sammen på veien, siden de da kan prate fritt med hverandre.

Campuset modelleres som en sammenhengende, urettet graf med $n$ noder og $m$ kanter med lengder. Møtestedet er kjøpesenteret, som ligger ved node $1$. $k$ venner starter fra forskjellige noder og reiser til kjøpesenteret. Alle vennene beveger seg med samme hastighet ($1$ lengdeenhet per tidsenhet), og har lov til å endre retning i enhver posisjon langs en kant (se eksempelforklaringen).

La $t_{\text{meet}}$ være det tidligste mulige tidspunktet slik at alle vennene kan nå kjøpesenteret innen dette tidspunktet. Basert på dette tidligste mulige møtetidspunktet skal du for hver enkelt venn finne den maksimale totale tiden de kan tilbringe med selskap (det vil si at minst én annen venn befinner seg på nøyaktig samme sted i grafen, som kan være en node eller en posisjon langs en kant) før den endelige samlingen på kjøpesenteret.

Når man betrakter en bestemt venn $i$, optimaliseres rutene og bevegelsesstrategiene til alle andre venner $j \neq i$ for å maksimere selskapstiden for venn $i$, så lenge alle vennene ankommer kjøpesenteret senest ved tidspunktet $t_{\text{meet}}$.

Inndata

Den første linjen inneholder et heltall $T$ ($1 \le T \le 10^4$), som angir antall testtilfeller.

For hvert testtilfelle inneholder den første linjen tre heltall $n, m, k$ ($2 \le n \le 3 \times 10^5$, $n - 1 \le m \le 10^6$, $2 \le k \le n$), som representerer henholdsvis antall noder, kanter og venner.

Den andre linjen inneholder $k$ forskjellige heltall $a_1, a_2, \ldots, a_k$ ($1 \le a_i \le n$), som angir startnodene til vennene.

De neste $m$ linjene inneholder hver tre heltall $u, v, w$ ($1 \le u, v \le n$, $u \neq v$, $1 \le w \le 10^9$), som angir en kant mellom node $u$ og $v$ med lengde $w$. Grafen er sammenhengende og har ingen duplikatkanter eller løkker.

Summen av $n$ over alle testtilfeller overstiger ikke $3 \times 10^5$, og summen av $m$ over alle testtilfeller overstiger ikke $10^6$.

Utdata

For hvert testtilfelle skal du skrive ut en linje som inneholder $k$ flyttall atskilt med mellomrom, hvert formatert med nøyaktig én desimal, som representerer den maksimale tiden med selskap for hver venn.

Eksempler

Inndata 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

Utdata 1

3.0 3.0
1.5 1.5
3.5 3.5 2.5

Merk

For det tredje testtilfellet i eksempelet er det tidligste møtetidspunktet på kjøpesenteret $5$ tidsenheter.

  • Vennene fra nodene $1$ og $2$ kan møtes halvveis på kanten $(1, 2)$ etter $1.5$ enheter, reise sammen tilbake til kjøpesenteret på ytterligere $1.5$ enheter og deretter vente $2$ enheter på kjøpesenteret, noe som gir totalt $3.5$ enheter med selskap.
  • Vennen fra node $3$ møter vennene fra node $1$ halvveis på kanten $(1, 3)$ etter $2.5$ enheter og returnerer sammen med dem på $2.5$ enheter, noe som gir totalt $2.5$ enheter med selskap.

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.