QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 256 MB Total points: 100

#5336. 붕괴

Statistics

Farmer John의 농장은 서로 다른 정점들을 도로(간선)로 연결한 방향 가중 그래프로 나타낼 수 있다. 각 간선의 가중치는 해당 도로를 따라 이동하는 데 필요한 시간이다. Bessie는 매일 외양간(정점 $1$)에서 들판(정점 $N$)까지 정확히 $K$개의 도로를 따라 이동하기를 좋아하며, 이 조건을 지키면서 최대한 빨리 들판에 도착하고 싶어 한다. 하지만 어느 순간 도로의 유지 보수가 중단되고, 도로들이 하나씩 망가져서 통행할 수 없게 된다. Bessie가 모든 시점에서 외양간에서 들판까지의 최단 경로를 찾도록 도와주자!

정확히 말하면, 처음에는 $N$개의 정점 ($1\le N\le 300$)과 $N^2$개의 간선으로 이루어진 완전 방향 가중 그래프가 있다. 모든 $1 \le i, j \le N$인 쌍 $(i, j)$마다 간선 하나가 있다(자기 루프도 $N$개 있음에 유의하자). 간선을 하나 제거할 때마다 정점 $1$에서 정점 $N$까지 정확히 $K$개의 간선(서로 다를 필요는 없다)을 지나는 경로 중 최소 가중치를 출력하라 ($2\le K\le 8$). $i$번째 제거 이후 그래프에는 $N^2-i$개의 간선이 남아 있다.

경로의 가중치는 경로에 있는 모든 간선의 가중치의 합으로 정의한다. 경로는 같은 간선이나 같은 정점을 여러 번 포함할 수 있으며, 정점 $1$과 $N$도 예외가 아님에 유의하자.

입력

첫 번째 줄에는 $N$과 $K$가 주어진다.

다음 $N$개의 줄에는 각각 $N$개의 정수가 주어진다. $i$번째 줄의 $j$번째 정수는 $w_{ij}$ ($1\le w_{ij}\le 10^8$)이다.

그다음 $N^2$개의 줄에는 각각 두 정수 $i$와 $j$ ($1\le i,j\le N$)가 주어진다. 모든 정수 쌍은 정확히 한 번씩 등장한다.

출력

정확히 $N^2$개의 줄에, 각 제거 이후 최소 가중치의 $K$-간선 경로의 가중치를 출력한다. $K$-간선 경로가 존재하지 않으면 $-1$을 출력한다.

예제

입력 1

3 4
10 4 4
9 5 3
2 1 6
3 1
2 3
2 1
3 2
2 2
1 3
3 3
1 1
1 2

출력 1

11
18
22
22
22
-1
-1
-1
-1

참고

첫 번째 제거 이후 최단 $4$-간선 경로는 다음과 같다.

1 -> 2 -> 3 -> 2 -> 3

두 번째 제거 이후 최단 $4$-간선 경로는 다음과 같다.

1 -> 3 -> 2 -> 1 -> 3

세 번째 제거 이후 최단 $4$-간선 경로는 다음과 같다.

1 -> 3 -> 3 -> 3 -> 3

여섯 번 제거한 이후에는 $4$-간선 경로가 더 이상 존재하지 않는다.

서브태스크

  • $2\le T\le 14$에 대해 테스트 케이스 $T$는 $K=\lfloor (T+3)/2\rfloor$를 만족한다.

문제 출제: Benjamin Qi

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.