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 | 31 |
Tags
- text-to-speech
- korean tts
- 트레이닝
- singing voice synthesis
- 한국어 음성 합성
- waveglow
- 노래합성
- YOLO
- 보코더
- 학습
- TTS
- 윈도우
- 딥러닝
- DCTTS
- deep voice
- 딥러닝 보코더
- melgan
- 타코트론
- Vocoder
- 음성 합성
- you only look once
- tacotron
- 딥러닝 음성 합성
- 한국어 tts
Archives
- Today
- Total
chldkato
백준 17281 ⚾ (파이썬) 본문
https://www.acmicpc.net/problem/17281
1. 타순에 대한 리스트 select와 중복을 검사할 리스트 c를 만든다
1번 타자는 4번 타순으로 이미 정해져있기 때문에 select[3]은 0, c[3]은 1로 미리 정해둔다
2. dfs 순열로 모든 타순에 대한 점수를 구한다
3. 타순이 정해지면 타석에 들어갈 선수를 알려주는 변수 start와 점수를 저장할 score를 만든다
4. 매 이닝마다 아웃카운트 out과 루에 있는지 확인할 변수 b1~b3를 초기화한다
5. 아웃카운트가 3이 될 때까지 타순을 이어나간다
만약 타석에 들어간 선수가 할 행동이 0 이면 out을 증가시킨다
1~4이면 각 숫자에 맞게 점수를 증가시키고 b1~b3을 갱신한다
6. start를 증가시키고 9로 나눈 나머지로 갱신한다
7. 모든 이닝이 끝나면 최대값을 갱신한다
import sys
input = sys.stdin.readline
def dfs(cnt):
global ans
if cnt == 9:
start, score = 0, 0
for inning in a:
out, b1, b2, b3 = 0, 0, 0, 0
while out <= 2:
p = select[start]
if inning[p] == 0:
out += 1
elif inning[p] == 1:
score += b3
b1, b2, b3 = 1, b1, b2
elif inning[p] == 2:
score += b2 + b3
b1, b2, b3 = 0, 1, b1
elif inning[p] == 3:
score += b1 + b2 + b3
b1, b2, b3 = 0, 0, 1
else:
score += b1 + b2 + b3 + 1
b1, b2, b3 = 0, 0, 0
start += 1
start %= 9
ans = max(ans, score)
return
for i in range(9):
if c[i]:
continue
c[i] = 1
select[i] = cnt
dfs(cnt + 1)
c[i] = 0
select[i] = 0
n = int(input())
a = [list(map(int, input().split())) for _ in range(n)]
select, c = [0 for _ in range(9)], [0 for _ in range(9)]
select[3], c[3] = 0, 1
ans = 0
dfs(1)
print(ans)
'백준' 카테고리의 다른 글
백준 2309 일곱 난쟁이 (파이썬) (0) | 2020.04.27 |
---|---|
백준 18808 스티커 붙이기 (파이썬) (0) | 2020.04.26 |
백준 17136 색종이 붙이기 (파이썬) (0) | 2020.04.23 |
백준 17135 캐슬 디펜스 (파이썬) (0) | 2020.04.23 |
백준 17070 파이프 옮기기 1 (파이썬) (0) | 2020.04.21 |
Comments