2023. 3. 11. 15:41ㆍPS/백준
이 문제는 까지의 수 중에서 을 만족하는 쌍들을 최대한 많이 만들고 쌍을 만들 수 없는 경우 자기 자신이 쌍이 될 때 최소의 쌍의 개수가 몇 개인지 구하는 것이다. 우리는 이면 는 쌍을 만들 수 없다는 사실을 안다. 다음과 같은 과정을 생각해보자.
에서 쌍이 완벽히 지어졌다 가정하자. 우리는 을 저 집합에 추가하고 최적의 쌍을 얻어낼 것이다.
0. 이 소수이다.
- 을 쌍으로 한다.
1. 중에서 짝지어지지 않은 소수 가 존재하여 이다.
- 을 쌍으로 한다.
2. 에서 인 소수와 1을 제외한 모든 수들이 쌍으로 묶여있다.
- 을 쌍으로 한다.
3. 에서 인 소수와 1, 그리고 합성수 를 제외한 모든 수들이 쌍으로 묶여있다.
- 의 최소인수를 , 의 최소인수를 라고 하자. 이라 가정하자. 그럼 인데 가 합성수라는 조건에 모순이다. 따라서 이고 이다. 즉, 라는 쌍이 존재한다. 는 의 배수거나 의 배수임이 분명하다. 이면 과 를 쌍으로 하자. 이면 와 을 쌍으로 하자.
위 과정을 따르게 된다면 항상 최소 개수의 쌍을 유지할 수 있다. 여기에서 알 수 있는 것은 과 인 소수들을 제외한 모든 수들은 짝이 지어진다는 것이다. 따라서 까지 소수의 개수를 이라고 하면 우리가 구하고자 하는 최소 쌍의 개수는 다음과 같다.
다만 가 홀수가 되는 경우 1을 더해야 한다. pair가 안맞는 친구가 1개 존재한다는 뜻이기 때문에 그 친구는 혼자서 pair가 된다.
쿼리가 총 5번 들어오므로 각 퀴리를 에 처리하면 될 것이다. 이것은 Lucy-Hedgehog를 효율적으로 구성하면 된다. DB를 제작해서 하는 풀이도 있지만 컴퓨터가 아파해서 안될 것 같다.
'PS > 백준' 카테고리의 다른 글
[BOJ 23453] Dirichlet -th root (0) | 2023.08.11 |
---|---|
[BOJ 15174] Hilbert’s Hash Browns (0) | 2023.04.02 |
[BOJ 18578] Jimp Numbers (0) | 2023.03.04 |
[BOJ 3904] The Teacher's Side of Math (0) | 2022.09.02 |
[BOJ 19549] 레이저 연구소 (6) | 2022.08.21 |