내용으로 건너뛰기
테페리넷
사용자 도구
등록
로그인
사이트 도구
검색
도구
문서 보기
Fold/unfold all
역링크
미디어 관리자
사이트맵
등록
로그인
>
미디어 관리자
사이트맵
현재 위치:
테페리넷
»
Problem Solving
»
문제
»
백준 온라인 저지 (BOJ)
»
날짜 계산
ps:problems:boj:1476
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== 날짜 계산 ====== ===== 풀이 ===== * 연립 합동식 {x%15=E, x%28=S, x%19=M} 의 해를 찾는 문제. 모듈러스가 모두 서로소이므로 [[ps:연립 선형 합동식|중국인의 나머지 정리]]를 그냥 적용하면 된다. * 답은 1이상이어야 하므로, 해가 0인 경우에는 따로 처리해야 하는 것에 주의. * 모듈러스가 m_1, m_2, ..., m_n 일 때, 중국인의 나머지 정리의 시간복잡도는 O(n + sum(log(m_i)))이다. 이 문제에서는 m_i가 이미 문제에서 고정되어 있으므로 그냥 상수로 생각한다면 시간 복잡도는 그냥 O(1)이다. * 사실 이 문제에서는 저 모듈러 역원을 구해서 계산하는 표준적인 계산법을 쓰지 않더라도, 답의 범위가 15*28*19=7980 이하의 자연수라는 것을 알 수 있기 때문에, 그냥 1~7980까지 모든 수에 대해서 저 식을 만족하는지 대입해 보는 방법이 실제 수행속도로는 더 빠르다.. ===== 코드 ===== <dkpr py> """Solution code for "BOJ 1476. 날짜 계산". - Problem link: https://www.acmicpc.net/problem/1476 - Solution link: http://www.teferi.net/ps/problems/boj/1476 """ from teflib import numtheory MODS = (15, 28, 19) def main(): E, S, M = [int(x) for x in input().split()] a, m = numtheory.linear_congruences((E, S, M), MODS, coprime_moduli=True) print(a if a > 0 else a + m) if __name__ == '__main__': main() </dkpr> * Dependency: [[:ps:teflib:numtheory#linear_congruences|teflib.numtheory.linear_congruences]] {{tag>BOJ ps:problems:boj:실버_5}}
ps/problems/boj/1476.txt
· 마지막으로 수정됨: 2022/05/12 03:30 저자
teferi
문서 도구
문서 보기
역링크
Fold/unfold all
맨 위로