Logo
(追記) (追記ここまで)

32252번 - 가중치 복사 버그

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 (추가 시간 없음) 1024 MB (추가 메모리 없음)299585122.973%

문제

$N$개의 정점과 $M$개의 양방향 간선으로 이루어진 그래프가 있다. 정점에는 1ドル$부터 $N$까지 번호가 매겨져 있다. 각 간선에는 가중치가 있는데, 가중치는 0ドル$ 또는 1ドル$이다. 이제 정점 $s$에서 정점 $e$까지 가는 가능한 모든 경로의 길이 중 최솟값을 구하여라.

위 문제는 전형적인 ‘0-1 BFS’ 문제가 되므로 너무 쉽다. 하지만 아래와 같이 그래프에 가중치 복사 버그가 일어난다면 어떨까?

  • 가중치가 $c$인 간선을 지나면, 그 직후 모든 간선의 가중치가 $c$만큼 증가한다.
  • 여기서 가중치는 간선의 초기 가중치가 아니라 간선을 지나기 직전 시점의 가중치이다.

가중치 복사 버그를 고려하여, 정점 $s$에서 정점 $e$까지 가는 가능한 모든 경로의 길이 중 최솟값을 구하여라. 답은 이진수로 출력하며, 답이 0ドル$인 경우에는 0을 출력하고, 그렇지 않은 경우에는 0으로 시작하면 안 된다.

입력

첫째 줄에 정점의 수 $N$과 간선의 수 $M,ドル 시작 정점의 번호 $s$와 도착 정점의 번호 $e$가 공백을 사이에 두고 주어진다. (2ドル\le N\le 300,円 000$; 1ドル\le M\le 600,円 000$; 1ドル\le s,e\le N$; $s\ne e$)

이후 $M$개의 줄에 각 간선의 정보가 주어진다. 각 줄에는 $u,ドル $v,ドル $c$가 공백을 사이에 두고 주어진다. (1ドル\le u,v\le N$; $u\ne v$; $c\in\{0,1\}$) 이는 정점 $u$와 $v$를 연결하며 초기 가중치가 $c$인 간선이 있음을 의미한다.

$s$에서 $e$로 가는 경로가 적어도 하나 있다.

출력

정점 $s$에서 정점 $e$로 가는 가능한 모든 경로의 길이 중 최솟값을 출력한다.

답은 이진수로 출력하며, 답이 0ドル$인 경우에는 0을 출력하고, 그렇지 않은 경우에는 0으로 시작하면 안 된다.

제한

예제 입력 1

4 4 1 4
1 2 0
1 3 1
2 4 1
3 4 0

예제 출력 1

1

예제 1에서 정점 1ドル$에서 정점 4ドル$로 가는 경로는 정점 2ドル$를 지나는 것과 정점 3ドル$을 지나는 것 두 가지가 있다.

정점 2ドル$를 지나는 경우 가중치가 0ドル$인 간선을 지난 뒤 가중치가 1ドル$인 간선을 지나므로 경로의 길이는 1ドル$이다.

정점 3ドル$을 지나는 경우 가중치가 1ドル$인 간선을 지나면 가중치가 0ドル$이었던 간선의 가중치가 1ドル$이 되고, 이 간선까지 지나므로 경로의 길이가 2ドル$이다.

즉 정점 1ドル$에서 정점 4ドル$로 가는 가능한 모든 경로 중 길이가 가장 짧은 경로는 정점 2ドル$를 지나는 것으로, 길이가 1ドル$이다.

예제 입력 2

7 10 1 2
3 1 1
7 3 1
4 7 1
3 6 0
5 1 1
1 7 0
5 4 0
6 2 0
4 2 1
6 4 0

예제 출력 2

11

힌트

출처

University > 서울대학교 > 서울대학교 프로그래밍 경시대회 > 2024 서울대학교 프로그래밍 경시대회 > Division 1 F번

University > 서울대학교 > 서울대학교 프로그래밍 경시대회 > 2024 서울대학교 프로그래밍 경시대회 > Division 2 G번

University > 서울대학교 > 서울대학교 프로그래밍 경시대회 > 2024 서울대학교 프로그래밍 경시대회 > Division 1 (Open Contest) F번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /