gs25   2년 전

문제를 간략히 설명하면 다음과 같습니다. 집합이 주어졌을 때  쌍마다 서로소이고 크기가 4인부분집합의 개수를 구하시오. 제 풀이는 뫼비우스 함수를 이용해서 다음같이 풀었습니다. n <= 10^4 이고 시간복잡도가 O(n^2) 인데 시간초과가 뜨네요.. 어떻게 시간복잡도를 줄일 수 있는지 궁금합니다. 

preview

zigui   2년 전

38번째 줄에서 모든 g에 대해 모든 원소를 순회하는 것 대신, 모든 수의 약수 g를 구해 배열에 값을 1 더하는 식으로 하면 시간을 줄일 수 있습니다.

추가로, 뫼비우스 함수의 값이 0이 아닌 약수만 구하여 배열을 갱신하면 모든 약수를 확인할 필요가 없어 시간을 더 줄일 수 있습니다.

gs25   2년 전

진짜 감사합니다 ㅠㅠ 

댓글을 작성하려면 로그인해야 합니다.