내용으로 건너뛰기
테페리넷
사용자 도구
등록
로그인
사이트 도구
검색
도구
문서 보기
Fold/unfold all
역링크
미디어 관리자
사이트맵
등록
로그인
>
미디어 관리자
사이트맵
현재 위치:
테페리넷
»
Problem Solving
»
문제
»
백준 온라인 저지 (BOJ)
»
이동
ps:problems:boj:1067
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== 이동 ====== ===== 풀이 ===== * [[ps:고속 푸리에 변환]]을 써서 합성곱을 구하는 전형적인 문제. * 수열 한개를 두번 이어 붙인 후, FFT로 다항식 곱셈을 해서 얻어지는 수열의, N-1부터의 N개 항이 우리가 원하는 합성곱이다. * 수열을 바꾸지 않고 그냥 다항식 곱셈을 해서 수열을 얻고, i번째 항과 N+i번째 항을 더하는 방식으로 합성곱 수열을 계산할 수도 있다. * 시간복잡도는 고속 푸리에 변환에 필요한 O(nlogn) ===== 코드 ===== <dkpr py> """Solution code for "BOJ 1067. 이동". - Problem link: https://www.acmicpc.net/problem/1067 - Solution link: http://www.teferi.net/ps/problems/boj/1067 """ from teflib import fft MAX = 100 def main(): N = int(input()) X = [int(x) for x in input().split()] Y = [int(x) for x in input().split()] res = fft.multiply(X + X, Y[::-1]) print(max(res[N - 1:N + N - 1])) if __name__ == '__main__': main() </dkpr> * Dependency: [[:ps:teflib:fft#multiply|teflib.fft.multiply]] {{tag>BOJ ps:problems:boj:플래티넘_2}}
ps/problems/boj/1067.txt
· 마지막으로 수정됨: 2021/05/05 16:33 저자
teferi
문서 도구
문서 보기
역링크
Fold/unfold all
맨 위로