[BOJ 16141] 정수론과 응용: 레시테이션
2022. 6. 16. 23:35ㆍPS/백준
아주 교육적인 문제 xudyh's sieve를 잘 활용할 수 있냐를 묻고 있다.(아마 그럴거다)
xudyh's sieve를 유도하면서 어떻게 식을 변형할지 알아보자. 앞으로 어떤 함수의 1부터 까지 부분합을 이라 적겠다. 위 테그닉은 과 을 쉽게 계산할 수 있을 때 을 쉽게 계산하는 방법에 대해 말해준다. 다음 식과 함께 시작하자.
이때 적절한 변형을 통해 다음을 얻는다.
자 이제 본 문제의 주어진 식을 변형해보자.
이때 는 Jordan totient function이라고도 불리는데 다음을 만족한다.
다음을 정의하자.
구한 식들을 이용해 준식을 변형해보자.
이때 이렇게 쓰면 어떨까?
짜잔, 우리가 구하려는 식은 의 부분합이 되어버렸다. 우린 라는 것을 알 수 있고 이로써 를 얻는다.() 앞서 유도한 xudyh's sieve에 대입해보자.
세상에... 이것보다 간단할 수 있을까? 이제 최적화를 해보자. 을 빨리 구할 방도를 마련해보자.
이렇게 변형하면 dp를 이용해서 우변을 빠르게 계산할 수 있다. 마치 1492번처럼!
이로써 이번 글을 마치겠다. 끝!
'PS > 백준' 카테고리의 다른 글
[BOJ 15868] Yule Lads (0) | 2022.06.17 |
---|---|
[BOJ 13729] 1013 피보나치 (0) | 2022.06.16 |
[BOJ 16644] Easy Problem (9) | 2022.06.16 |
[BOJ 17372] 피보나치 수의 최대공약수의 합 (0) | 2022.06.16 |
[BOJ 18151] DivModulo (0) | 2022.05.16 |