Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- DCTTS
- 학습
- 보코더
- 타코트론
- 한국어 tts
- 딥러닝
- 윈도우
- waveglow
- korean tts
- 트레이닝
- melgan
- YOLO
- text-to-speech
- 딥러닝 보코더
- singing voice synthesis
- deep voice
- 한국어 음성 합성
- you only look once
- 딥러닝 음성 합성
- 음성 합성
- TTS
- Vocoder
- tacotron
- 노래합성
Archives
- Today
- Total
chldkato
백준 1939 중량제한 (파이썬) 본문
https://www.acmicpc.net/problem/1939
1. 양방향으로 중량을 함께 저장한다
2. 중량은 1부터 목적지로 올 수 있는 중량 중에서 최대값 까지 올 수 있으므로 이를 이분탐색의 범위로 설정
3. left와 right의 중간값을 옮길 중량으로 해서 목적지까지 도달할 수 있는지 bfs로 검증하면서 이분탐색 실행
from collections import deque
import sys
input = sys.stdin.readline
def bfs(x, th):
q = deque()
c = [0 for _ in range(n)]
q.append(x)
c[x] = 1
while q:
x = q.pop()
for nx, w in a[x]:
if c[nx] == 0 and w >= th:
c[nx] = 1
q.append(nx)
if c[y-1] == 1:
return 1
else:
return 0
n, m = map(int, input().split())
a = [[] for _ in range(n)]
for _ in range(m):
x, y, w = map(int, input().split())
a[x-1].append([y-1, w])
a[y-1].append([x-1, w])
x, y = map(int, input().split())
left, right = 1, 0
for i in a[y-1]:
right = max(right, i[1])
while left <= right:
mid = (left + right) // 2
if bfs(x-1, mid):
ans = mid
left = mid + 1
else:
right = mid -1
print(ans)
'백준' 카테고리의 다른 글
백준 2234 성곽 (파이썬) (0) | 2020.02.20 |
---|---|
백준 1194 달이 차오른다, 가자. (파이썬) (0) | 2020.02.20 |
백준 1152 단어의 개수 (파이썬) (0) | 2020.02.18 |
백준 1987 알파벳 (파이썬) (0) | 2020.02.18 |
백준 1726 로봇 (파이썬) (0) | 2020.02.18 |
Comments