아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Rymdpatrullen

시간 제한1초메모리 제한1024 MB

요약
N개의 기지에서 (D 합) 곱하기 (L 합)을 최소로 하는 신장 트리를 골라, 두 합과 간선 목록을 출력한다.
난이도

보통10점 중 7점

유형
최소 신장 트리, 그래프, 정렬, 완전 탐색
정답자
아직 제출이 없습니다

문제

Aj aj -- solsystemet har invaderats utifrån av ett hot från rymden som tagit över NN av människornas rymdbaser! Det har gått så långt att rymdstyrelsen bestämt sig för att använda sig av sitt starkaste kort: rymdpatrullens mest kända rymdskepp Orion, under befäl av kommendör Cliff Allister McLane.

Orion måste nu ta tillbaka kontrollen över samtliga rymdbaser från rymdkaparna. Mellan vissa par av rymdbaserna finns det farleder som Orion kan färdas längs, totalt MM stycken. Dessa farleder är dock vaktade av utomjordingarna, som Orion måste bekämpa med sin dödsstråle. Varje farled har dessutom en viss längd.

Bränsleåtgången för Orion fungerar på följande vis. Antag att skeppet totalt sett över alla farleder Orion färdas längs måste spendera DD energi för att använda sin dödsstråle och LL energi för att färdas längs farlederna. Då är den totala bränsleförbrukningen D⋅LD \cdot L (ty den ökade energianvändningen orsakar överhettning hos motorn, som minskar dess effektivitet). Så fort Orion lyckas färdas till en rymdbas tar de dock över den med lätthet utan någon energianvändning. Varje rymdbas har dessutom en teleportör som kan transportera Orion till vilken annan rymdbas som helst som Orion redan tagit över. Detta innebär att Orion kommer färdas längs exakt N−1N - 1 farleder.

Hjälp Orion att avgöra vilka farleder de ska färdas längs för att minimera den totala bränsleförbrukningen som krävs för att ta över alla rymdbaser. Orion befinner sig just nu på rymdbas 00, som de redan tagit över.

입력

Den första raden innehåller heltalen NN och MM (1≤N≤2001 \le N \le 200, 1≤M≤10,0001 \le M \le 10\\,000) -- antalet rymdbaser och antalet farleder. Rymdbaserna är numrerade mellan 00 och N−1N - 1.

De följande MM raderna innehåller fyra heltal XX, YY, DD och LL (0≤X,Y<N0 \le X, Y < N, X≠YX \neq Y, 1≤D,L≤2551 \le D, L \le 255) -- detta betyder att det finns en farled mellan rymdbaserna XX och YY, som kräver DD energianvändning av dödsstrålen och LL energianvändning för att färdas utmed. Det går högst en farled mellan två givna rymdbaser.

출력

Först ska du skriva ut den totala energianvändningen av dödsstrålen respektive färdandet på en rad, i en strategi som minimerar den totala bränsleförbrukningen.

Skriv sedan ut N−1N - 1 rader, en för varje farled Orion ska åka längs. Varje farled ska skrivas ut med två tal 0≤X,Y<N0 \le X, Y < N, farleden Orion ska åka längs (ordningen ska vara samma som i indatan). Farlederna kan ges i vilken ordning som helst.

Om flera lösningar finns kan du skriva ut vilken som helst.

힌트

Vi har tre olika uppsättningar farleder vi kan välja: antingen lederna (0,1)(0, 1) och (1,2)(1, 2), eller (0,1)(0, 1) och (2,0)(2, 0), eller (1,2)(1, 2) och (2,0)(2, 0).

Den första av dessa har kostnad (1+3)⋅(3+1)=16(1 + 3) \cdot (3 + 1) = 16, medan de två andra har en lägre kostnad på (1+2)⋅(3+2)=(3+2)⋅(1+2)=15(1 + 2) \cdot (3 + 2) = (3 + 2) \cdot (1 + 2) = 15. Vi kan därmed skriva ut vilken som helst av dessa två lösningar.

예제2

  1. 예제 1

    입력
    3 3
    0 1 3 1
    1 2 1 3
    2 0 2 2
    
    예상 출력
    5 3
    2 0
    0 1
    
  2. 예제 2

    입력
    5 7
    0 1 81 39
    0 2 81 8
    0 3 7 77
    1 4 71 92
    2 4 118 40
    3 4 20 121
    2 1 33 46
    
    예상 출력
    141 252
    0 2
    2 1
    3 4
    0 3